"""
(실전 문제) 볼링공 고르기 p, 315 

- A, B두 사람이 볼링을 치고 있습니다. 두 사람은 서로 [ 무게가 다른 골링공 ]을 고르려고 합니다. 

- 볼링공은 [총 N개 ]가 있으며 각 볼링공마다 무게가 적혀 있고, [ 공의 번호는 ] 1번부터 순서대로 부여됩니다.

- 또한 [ 같은 무게의 공이 여러 개 ] 있을 수 있지만, [ 서로 다른 공 ]으로 간주하빈다. 
  [ 볼링공의 무게 ]는 [ 1부터 M까지의 자연수 형태 ]로 존재합니다.

- 예를 들어 'N이 5'이고, 'M이 3'이며 [ 각각의 무게가 차례대로 ] 1, 3, 2, 3, 2 일 때 
  [ 각 공의 번호가 ] 차례대로 1번부터 5번까지 부여됩니다. 
  이때 두 사람이 고를 수 있는 [ 볼링공 번호의 조합 ]을 구하면 다음과 같습니다.

 (1번, 2번)(1번, 3번)(1번, 4번) (1번, 5번) (2번, 3번)(2번, 5번)(3번, 4번) (4번, 5번)
 결과적으로 [ 두 사람이 공을 고르는 경우의 수 ]는 '8가지' 입니다.

- [ N개의 공의 무게가 ] 각각주어질 때, 두 사람이 [ 볼링공을 고르는 경우의 수 ]를 구하는 프로그램을 작성하세요.

[ 입력 조건 ]
- [ 첫째 줄 ]에 '볼링공의 개수 N', [ 공의 최대 무게 M이 ] 공백으로 구분되어 [ 각각 자연수 형태 ]로 주어집니다. 
  (1 <= N <= 1,000, 1 <= M <=10)
  
- [ 둘째 줄 ]에 각 [ 볼링공의 '무게 K'가 공백으로 구분 ]되어 순서대로 자연수 형태로 주어집니다.
   
[ 출력 조건 ]
- 첫째 줄에 두 사람이 [ 볼링공을 고르는 경우의 수 ]를 출력합니다.

( 입력 예시 )                         ( 출력 예시 1)
5 3
1 3 2 3 2                                 8
---------------------------------------------------------
                                     ( 출력 예시 2)
8 5
1 5 4 3 2 4 5 2                           25
"""
import time


# 내가 푼 방법. -- 먼가 2중 for문을 쓰니 조금 찝찝하지만, 시간적으로는 1초대가 나옴.
start = time.time()

n, m = list(map(int,input().split())) # 볼링공의 개수, 볼링공의 [ 최대 무게 ] 입력.
k = list(map(int,input().split())) # 볼링공 무게를 입력.

result = 0

# a가 먼저 하나를 고른 뒤 [ 나머지 중에 b가 고를수 있는 경우의 수 ]를 더해줌.
# 같은 무게라도 번호가 다르면 다른 공으로 생각한다고 했기 때문에, 그냥 차례로 검사하면 된다
for i in range(len(k)):
    for j in range(i+1,len(k)):
        if k[i] == k[j]: # 같은 무게인 경우는 제외함.
            continue
        result +=1
        
print(result)   

end = time.time()
print("수행시간 :", end - start)

#------------------------------------------------------------------------------

# 책 정답 11-5.py ( p, 512 ) 
start = time.time()

n, m = map(int, input().split()) # 볼링공의 개수, 볼링공의 [ 최대 무게 ] 입력.
data = list(map(int, input().split())) # 볼링공 무게를 입력.

# 1부터 10까지의 [ 무게를 담을 수 있는 ] 리스트 --> 문제에서 무게를 최대 10까지로 설정 가능하게 조건줌.
# 즉, 각 무게별로 [ 볼링공이 몇 개가 존재하는지 기록 ]할 수 있다. 
array = [0] * 11

for x in data:
    # 각 무게에 해당하는 [ 볼링공의 개수 ] 카운트
    array[x] += 1

result = 0

# 1부터 m(최대무게) 까지의 [ 각 무게에 대하여 처리 ]
for i in range(1, m + 1):
    n -= array[i] # [ 무게가 i인 ] 볼링공의 개수(A가 선택할 수 있는 개수) 제외
    result += array[i] * n # B가 선택하는 경우의 수와 곱해주기

print(result)

end = time.time()
print("수행시간 :", end - start)

