/*
int i,n;
int k()
{
int max;
max =-1000;
for(int i=0; i<k; i++){
scanf("%d",&n);
if(max>n){
max=n;
}
}
}
int main(int max)
{
scanf("%d",&n);
for(int i=1; i<=n; i++)
scanf("%d",&max[i]);
scanf("%d",&k);
printf("%d\n",&findi(k));
}
*/
/*
int n,d[1010];
int k()
{
}
int main()
{
scanf("%d",&n);
for(int i=1; i<=n; i+)
scanf("%d",&d[i]);
scanf("%d",&k);
printf("%d\n",lower_bound(k));
}
*/
/*
int n;
{
}
int main()
{
scanf("%d",&n);
if(zero(n))
printf("zero");
else
printf("non zero");
return 0;
}
*//*
int n()
{
int bool;
bool zero(int k){
return !k;
}
bool plus(int k){
return k>0;
}
}
int main()
{
scanf("%d",&n);
if(zero(n))
printf("zero");
else
printf("%s",plus(n)?"plus":"minus");
return 0;
}
*/
/*
int n;
int zero(int k)
{
return !k;
}
int main(int n)
{
scanf("%d",&n);
if(zero(n))
printf("zero");
else
printf("non zero");
return 0;
}
*/
/*
int n;
int zero(int k)
{
return !k;
}
int plus(int k)
{
return k>0;
}
int main()
{
scanf("%d",&n);
if(zero(n))
printf("zero");
else
printf("%s",plus(n)?"plus":"minus");
return 0;
}
*/
/*
int n;
int prime(int k)
{
int i;
for(i=2; i<k; i++)
if(k%i==0)
break;
return i==k;
}
int main()
{
scanf("%d",&n);
if(prime(n))
printf("prime");
else
printf("composite");
return 0;
}
*/
/*
double x;
double f(double t)
{
return x-(long long int)t;
}
int main()
{
scanf("%lf",&x);
printf("%.14lf\n",f(x));
}
*/
/*
double x;
long long int f(double x)
{
long long int t=(long long int)x;
if(t<x)
return x+1;
else
return x;
}
int main(int x)
{
scanf("%lf",&x);
printf("%lld\n",f(x));
}
*/
/*
long long int n;
{
}
int main()
{
scanf("%lld",&n);
printf("%d\n",sqrt(n));
return 0;
}
*/
/*
long long int main()
{
int a,b;
scanf("%d %d",&a,&b);
if(a>b){
printf("%d",a+b);
}
else if(b>a){
printf("%d",b+a);
}
}
*/
/*
struct student {
int grade;
int number;
int koreanTest;
int mathTest;
int engTest;
char name[10];
struct privateParents parents;
};
struct privateParents {
char fatherName[10];
char motherName[10];
char brother[10];
char address[30];
};
int main() {
struct student dohuui;
dohuui.grade = 3;
dohuui.koreanTest = 120;
dohuui.mathTest = 100;
dohuui.number = 1;
dohuui.parents
}
*/
/*
#include <stdio.h>
int main()
{
int max,i,j;
int jumsu[1001];
int rank[1001];
scanf("%d",&max);
for(i=0; i<max; i++)
{
scanf("%d",&jumsu[i]);
rank[i]=1;
}
for(i=0; i<max; i++)
{
for(j=0; j<max; j++)
{
if(jumsu[i]<jumsu[j])
{
++rank[i];
}
}
}
for(i=0; i<max; i++)
{
printf("%d %d",jumsu[i],rank[i]);
printf("\n");
}
}
*/
struct student
{
int jumsu;
int rank;
};
int main()
{
struct student date[200];
int n, i, j;
scanf("%d", &n);
for(i=0; i<n; i++)
{
scanf("%d", &date[i].jumsu);
}
for(i=0; i<n; i++)
{
date[i].rank=1;
for(j=0; j<n; j++)
{
if(date[i].jumsu<date[j].jumsu)
{
++date[i].rank;
}
}
}
for(i=0; i<n; i++)
{
printf("%d %d",date[i].jumsu,date[i].rank);
printf("\n");
}
}