using System;
using System.Numerics;
using System.Linq;
using System.Collections.Generic;
using System.Text;
namespace Atcoder20190616
{
class ProgramA
{
static void Main(string args)
{
//入力
string input = Console.ReadLine().Split(' ');
int m = int.Parse(input[0]);
int n = int.Parse(input[1]);
//偶数同士の組み合わせと奇数同士の組み合わせなので、mC2とnC2を求める
//a=b=c=l/3のとき最大
}
}
class ProgramD
{
static void Main(string args)
{
//入力
long n = long.Parse(Console.ReadLine());
string a = Console.ReadLine().Split(' ');
long[] num = new long[n];
long sum = 0;
//それぞれ数がいくつあるか数える
for(int i = 0;i < n;i++)
{
long temp = long.Parse(a[i]);
num[temp -1]++;
}
//とりあえずすべての数え方を見る
for(int i = 0;i < n;i++)
{
sum += num[i] *(num[i] -1)/2;
}
//1つずつ禁止されたときに場合を除く(n-1する)。答を出力
for(int i = 0;i < n;i++)
{
long temp = long.Parse(a[i]);
Console.WriteLine(sum - num[temp-1] +1);
}
}
}
}
*1:m-1)*m/2 + n*(n-1)/2);
}
}
class ProgramB
{
static void Main(string args)
{
//入力
string s = Console.ReadLine();
int len = s.Length;
for(int i = 0;i < (len - 1) /2;i++)
{
//回文かみる
if(s[i] != s[(len-1) -i])
{
Console.WriteLine("No");
return;
}
//前半が回文かみる
if(s[i] != s[(len-1)/2 - i])
{
Console.WriteLine("No");
return;
}
//後半が回文かみる
if(s[(len + 3)/2 + i] != s[len - 1 - i])
{
Console.WriteLine("No");
return;
}
}
Console.WriteLine("Yes");
}
}
class ProgramC
{
static void Main(string args)
{
//入力