/*
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
*/
/*
#include<stdio.h>
int sum=1;
void rec(int n)
{
if(n==0)
{
return;
}
rec(n-1);
sum *= n;
}
int main()
{
int n;
scanf("%d",&n); rec(n);
printf("%d",sum);
}
*/
/*
#include<stdio.h>
int sum=0;
void rec(int n)
{
if(n==0)
{
return;
}
rec(n-1);
sum+=n;
}
int main()
{
int n;
scanf("%d",&n);
rec(n);
printf("%d",sum);
}
*/
/*
#include<stdio.h>
void rec(int n)
{
if(n==1)
{
printf("%d\n",n);
return;
}
printf("%d\n",n);
if(n%2==0)
{
rec(n/2);
}
else
{
rec(3*n+1);
}
}
int main()
{
int n;
scanf("%d",&n);
rec(n);
}
*/
/*
#include<stdio.h>
void rec(int n)
{
if(n==1)
{
printf("%d\n",n);
return;
}
if(n%2==0)
{
rec(n/2);
}
else
{
rec(3*n+1);
}
printf("%d\n",n);
}
int main()
{
int n;
scanf("%d",&n);
rec(n);
}
rec(n) : 1부터 n까지의 합
: (1 + 2+3+4+.... +n-1 )+ n
: 1부터 n-1까지의 합 + n
: rec(n-1) + n
#include<stdio.h>
int rec(int n)
{
if(n==1) return 1;
return rec(n-1) * n;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",rec(n));
}
*/
/*
#include<stdio.h>
int rec(int n)
{
if(n==1||n==2) return 1;
return rec(n-1)+rec(n-2);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",rec(n));
}
*/
/*
#include<stdio.h>
int rec(int n)
{
if(n==1||n==2) return 1;
return rec(n-1)+rec(n-2);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",rec(n));
}
*/
/*
#include<stdio.h>
void star(int n)//*을 n번 출력하는 재귀함수
{
if(n==0)
return;
star(n-1);
printf("*");
}
int rec(int n)
{
if(n==0)
return;
rec(n-1);
star(n);//n출력 대신 * n번 출력
printf("\n");
}
int main()
{
int n;
scanf("%d",&n);
rec(n);
}
*/
/*
#include<stdio.h>
void rec(int n)
{
if(n==0)
return;
rec(n/2);
printf("%d",n%2);
}
int main()
{
int n;
scanf("%d",&n);
if(n==0)
{
printf("0");
return 0;
}
rec(n);
return 0;
}
*/
/*
#include<stdio.h>
int memo[201]={};
int rec(int n)
{
if(memo[n]!=0) return memo[n];
if(n==1||n==2) return memo[n]=1;
return memo[n]=(rec(n-1)+rec(n-2))%10009;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",rec(n));
}
#include<stdio.h>
int memo[201]={0};
int rec(int n)
{
if(memo[n]!=0) return memo[n];
if(n==1||n==2) return memo[n]=1;
return memo[n]=(rec(n-1)+rec(n-2))%10009;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",rec(n));
}
*/
/*
#include<stdio.h>
int memo[51][51]={0};
//memo[r][c] = (r,c)의 원소값
int rec(int r,int c)
{
if(memo[r][c]!=0) return memo[r][c];
if(r==1||c==1) return memo[r][c]=1;
return memo[r][c]=(rec(r,c-1)+rec(r-1,c))%100000000;
}
int main()
{
int r,c;
scanf("%d %d",&r,&c);
printf("%d",rec(r,c));
}
*/
/*
#include<stdio.h>
int main()
{
int i,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("*");
}
}
*/
/*
#include<stdio.h>
SuperSum(int k,int n)
{
if(k==0||n==0) return;
SuperSum(k-1,n-1);
}
int main()
{
while(scanf("%d %d",&k,&n)!=EOF)
printf("%d\n",SuperSum(k,n));
}
*/
/*
#include<stdio.h>
typedef struct
{
char name[10];
int b,c,d;
}student;
int main()
{
student st[101];
int n,i,mi=0,s=1,t=1;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s %d %d %d",st[i].name,&st[i].b,&st[i].c,&st[i].d);
}
for(i=0;i<n;i++)
{
if(st[i].b>st[mi].b)
{
mi=i;
}
}
printf("%s ",st[mi].name);
for(i=0;i<n;i++)
{
if(st[mi].c<st[i].c)
{
s++;
}
if(st[mi].d<st[i].d)
{
t++;
}
}
printf("%d %d",s ,t);
return 0;
}
*/
#include<stdio.h>
typedef struct
{
int a,b;
}student;
int main()
{
student st[201];
int n,i,c=1,j;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&st[i].a);
}
for(i=0;i<n;i++)
{
c=1;
for(j=0;j<n;j++)
{
if(st[i].a<st[j].a)
c++;
}
st[i].b=c;
printf("%d %d\n",st[i].a,st[i].b);
}
return 0;
}