/*#include <stdio.h>
int memo[100001]={};
int f(int n)
{
if(memo [n]!=0) return memo [n];
if(n==1) return 1;
if(n==2) return 2;
if(n==3) return 4;
return memo [n]=(f(n-1)+f(n-2)+f(n-3))%1000;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n));
}*/
/*1=1
1=1
2=1+1
//5=1+1+1+1+1
//5=1+1+1+2
//5=1+1+2+1
//5=1+2+1+1
//5=2+1+1+1
//5=1+1+3
//5=1+3+1
//5=3+1+1
//5=1+2+2
//5=2+1+2
//5=2+2+1
//5=2+3
//5=3+2
5=13
6=1+1+1+1+1+1
6=1+1+1+1+2 (5)
6=2+2+2
6=3+1+1+1 (4)
6=3+2+1(3)
6=3+3
6=1+1+2+2(2)
6=3+1+1(3)
6=5+1(2)
(22)
6=24
7=1+1+1+1+1+1+1 (1)
7=2+1+1+1+1+1(6)
7=3+1+1+1+1(4)
7=3+2+2(3)7=3+2+1+1(4)*/
/*4
7
13
24=4+7+13*/
//구조체 struct : 사용자 정의 자료형
// 내가 정하는 자료형
//
//정수 실수 문자
/*
#include <stdio.h>
typedef struct
{
int a;
float b;
char name;
}box;
int main()
{
box t;
t.a =15;
scanf("%f",&t.b);
printf("%d %f", t.a, t.b);
box arr[50]; // arr[0] ~ arr[49]
int i;
for(i=1;i<=10;i++)
{
scanf("%d %f",&arr[i].a,&arr[i].b);
}
return 0;
}
*/
#include <stdio.h>
typedef struct
{
int a; //점수
int b; //등수
} box;
int main()
{
int k,i,n,j,x=0;
box arr[201];
scanf("%d",&n);
for(i=1; i<=n; i++)
{
scanf("%d",&arr[i]);
}
for(i=1;i<=n;i++)
{
// arr[i]의 등수 구하기
x=0;
for(j=1;j<=n;j++)
{
if(arr[i].a<arr[j].a)
{
x++;
}
}
arr[i].b=x+1;
}
for(i=1;i<=n;i++)
{
printf("%d %d",&arr[i].a &arr[i].b)
}
return 0;
}