We have N balls. The i-th ball has an integer A_i written on it.
For each k=1, 2, ..., N, solve the following problem and print the answer.

* Find the number of ways to choose two distinct balls (disregarding order) from the N-1 balls other than the k-th ball so that the integers written on them are equal.

Constraints

* 3 \leq N \leq 2 \times 10^5
* 1 \leq A_i \leq N
* All values in input are integers.

Input

Input is given from Standard Input in the following format:


N
A_1 A_2 ... A_N


Output

For each k=1,2,...,N, print a line containing the answer.

Examples

Input

5
1 1 2 1 2


Output

2
2
3
2
3


Input

4
1 2 3 4


Output

0
0
0
0


Input

5
3 3 3 3 3


Output

6
6
6
6
6


Input

8
1 2 1 4 2 1 4 1


Output

5
7
5
7
7
5
7
5
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		//Random r = new Random();
		int N = sc.nextInt();
		int S[] = new int[N];
		long ct1[] = new long[200001];
		long ct2[] = new long[200001];
		int tmp;
		for(int i =0;i!=N;i++) {
			tmp=sc.nextInt();//sc.nextInt();
			S[i]=tmp;
			ct1[tmp]++;
			ct2[tmp]++;
			//System.out.println("tmp"+tmp+"ct"+ct1[tmp]+"ct2"+ct2[tmp]);
		}
		long total=0;
		for(int i= 0;i!=N;i++) {
			total=total+bikkuri(ct1[S[i]]);
			ct1[S[i]]=1;
		}
		for(int i=0;i!=N;i++) {
			if(ct2[S[i]]==1) {
				System.out.println(total);
			}else {
			System.out.println(total-bikkuri(ct2[S[i]])+bikkuri(ct2[S[i]]-1));
		}}
	}
	static long bikkuri(long t){
		return t*(t-1)/2;
	}
}
