semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
struct patient
{
	char name[10];
	int age;
}pat[100];
void main()
{
	int n,i,j=0,k=0,l;
	struct patient b[100];
	struct patient c[100];
	struct patient t;
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%s %d",pat[i].name,&pat[i].age);
    for(i=0;i<n;i++)
	{
		if(pat[i].age<60)  
		{
			  b[j]=pat[i];
		      j++;
		} 
		else
		{
			c[k]=pat[i];
		    k++;
		}
	}
	for(i=0;i<k-1;i++)
		for(l=0;l<k-1-i;l++)
			if(c[l].age<c[l+1].age)
			{
				t=c[l];
				c[l]=c[l+1];
				c[l+1]=t;
			}
	for(i=0;i<k;i++)
		printf("%s\n",c[i].name);
	for(i=0;i<j;i++)
        printf("%s\n",b[i].name);
}
main ()
{
     int n,j,k,t;
     scanf ("%d",&n);
     char a[n][10];
     char p[1][10]; 
     int g[n];
     for (j=0;j<n;j++)
     scanf ("%s %d",a[j],&g[j]);
        for (j=n-1;j>0;j--)
         for (k=n-1;k>n-j-1;k--)
        {
             if (g[k]>=60)
             {
                  if (g[k]>g[k-1])
                {
                     t=g[k-1];
                     g[k-1]=g[k];
                     g[k]=t;
                     strcpy (p[0],a[k-1]);
                       strcpy (a[k-1],a[k]);
                         strcpy (a[k],p[0]);
                } 
             }
         }  
          for (k=0;k<n;k++)         
      printf ("%s\n",a[k]);
     getchar ();
     getchar ();
     }
int main()
{
	struct pa
	{
		char ID[10];
        int age;
	}
	*p;
	int n, i, k, num=0, m=0;
	scanf("%d",&n);
	p=(struct pa*)malloc(sizeof(struct pa)*n);
	for(i=0;i<n;i++)
	{
		scanf("%s%d",p[i].ID, &p[i].age);
		if(p[i].age>=60) num++;
	}
	
	int w=0;
    for(i=0;i<n;i++)
	{
		if(p[i].age>=60)
		{
			struct pa q=p[i];
			for(k=i;k>w;k--)
			{
				p[k]=p[k-1];
			}
			p[w]=q;
			w++;
		}
	}
	
	for(i=num-1;i>0;i--)
	{
		for(k=0;k<i;k++)
		{
			if(p[k].age<p[k+1].age)
			{
				struct pa q=p[k];
				p[k]=p[k+1];
				p[k+1]=q;
			}
		}
	}
	for(i=0;i<n;i++)
	{
		printf("%s\n",p[i].ID);
	}
	free(p);
	return 0;
}
int main()
{
    int i,j,k,n;
    char a[11];
    int b;    
    scanf("%d",&n); 
    struct patient
    {
           char num[11];
           int age; 
           }pat[100];                  
    for(i=0;i<n;i++){                     
                     scanf("%s%d",pat[i].num,&pat[i].age);             
                     }                     
    for(i=0;i<n;i++){
                       for(j=0;j<n-1-i;j++){
                                            if(pat[j].age<pat[j+1].age&&pat[j+1].age>=60){
                                                                        for(k=0;k<10;k++){
                                                                                          a[k]=pat[j].num[k];
                                                                                          pat[j].num[k]=pat[j+1].num[k];
                                                                                          pat[j+1].num[k]=a[k];
                                                                                          }
                                                                        
                                                                        b=pat[j].age;
                                                                        pat[j].age=pat[j+1].age;
                                                                        pat[j+1].age=b;
                                                                        }
                                            }
                       }
    for(i=0;i<n;i++){
                       printf("%s\n",pat[i].num);
                       }      
    
    
    return 0;
    }
struct mice
{
	int wei;
	char color[100];
	struct mice *next;
};
struct mice *creat(int c)
{
	struct mice *head;
	struct mice *p1,*p2;
	struct mice *kok;
	kok=(struct mice*)malloc(LEN);
	kok->wei=0;strcpy(kok->color,"\0");
	int t;
	t=0;
	p1=p2=(struct mice*)malloc(LEN);
	scanf("%s %d",p1->color,&p1->wei);
	head=NULL;
	while(t<c)
	{
		t=t+1;
		if(t==1)
		{head=p1;}
		else
		{
			p2->next=p1;
			p2=p1;
			p1=(struct mice*)malloc(LEN);
			scanf("%s %d",p1->color,&p1->wei);
		}
	}
	p2->next=p1;
    p2=p1;
	p2->next=kok;
return(head);
}
	void mun(struct mice *hoih,int io)
	{
		int i,j,k;
		k=0;
		struct mice *bt;
        bt=hoih;
		char str[100];
			for(i=0;i<io;i++)
	{
		for(j=0;j<io-i;j++)
		{
			if(hoih->wei<(hoih->next)->wei&&(hoih->next)->wei>=60)
			{
				k=hoih->wei;
				hoih->wei=(hoih->next)->wei;
				(hoih->next)->wei=k;
				strcpy(str,hoih->color);
				strcpy(hoih->color,(hoih->next)->color);
				strcpy((hoih->next)->color,str);
			}
		
			hoih=hoih->next;
		}
		hoih=bt;
	}
    return;
}

void main()
{
	int n,h;
	struct mice *creat(int c);
	struct mice *p,*he;
	scanf("%d",&n);
	p=creat(n);
	he=p;
	void mun(struct mice *hoih,int io);
	mun(p,n);
	p=he;
    	for(h=0;h<n;h++)
		{
			printf("%s\n",p->color);
			p=p->next;
		}
}
struct patient{
	char id[10];
	int age;
	struct patient* next;
	struct patient* last;
};
char temp[10];
int main()
{
	struct patient *p1,*p2,*head,p[N];
	int n,i,j,tmp;
	scanf("%d",&n);
	memset(p,0,sizeof(p));
	head=p+1;
	for(i=1;i<=n;i++)
	{
	 scanf("%s %d",p[i].id,&p[i].age);
	 p[i].last=p+i-1;
	 p[i].next=p+i+1;
	}
	head->last=NULL;
	p[i].next=NULL;
	for(i=n;i>1;i--)
	{
		for(j=1;j<n;j++)
		{
			if((p+j+1)->age>=60&&(p+j+1)->age>(p+j)->age)
			{
				memcpy(temp,(p+j)->id,sizeof(temp));
				memcpy((p+j)->id,(p+j+1)->id,sizeof(temp));
				memcpy((p+j+1)->id,temp,sizeof(temp));
				tmp=(p+j)->age;
				(p+j)->age=(p+j+1)->age;
				(p+j+1)->age=tmp;
			}
		}
	}
	for(;head!=NULL;head=head->next)
	printf("%s\n",head->id);
	
}
struct
{
int age[100];
char ID[100][11];
}patient,*ppatient;
int main()
{
	ppatient=&patient;
	int n,i,j,k,num,m=0;
	char id[11],ID_1[100][11],age_1[100];
	scanf("%d",&n);
	for(i=0;i<n;i++){
	scanf("%s %d",patient.ID[i],&patient.age[i]);
	}
	j=0;
	for(i=0;i<n;i++){
		if((*ppatient).age[i]>=60){
		strcpy(ID_1[j],(*ppatient).ID[i]);
		age_1[j]=(*ppatient).age[i];
		m+=1;
		j++;
		}
	}
	for(j=m-1;j>0;j--){
		for(k=0;k<j;k++){
			if(age_1[k]<age_1[k+1]){
			strcpy(id,ID_1[k+1]);
			strcpy(ID_1[k+1],ID_1[k]);
			strcpy(ID_1[k],id);
			num=age_1[k+1];
			age_1[k+1]=age_1[k];
			age_1[k]=num;
			}
		}
	}
	for(i=0;i<m;i++){
	printf("%s\n",ID_1[i]);
	}
	for(i=0;i<n;i++){
	if((*ppatient).age[i]<60)
		printf("%s\n",(*ppatient).ID[i]);
	}
	return 0;
}
struct bingren
{
	   char id[10];
	   int o;
}bingren[201];
void main()
{
   int n,i,j,y,m;
   scanf("%d",&n);
   for(i=0;i<n;i++)
   {
	   scanf("%s%d",bingren[i].id,&bingren[i].o);
   }
   for(i=0,j=100;i<n;i++)
   {
	   
	   if(bingren[i].o>=60)
	   {
		   bingren[j]=bingren[i];
		   j++;
	   }
   }
   y=j;
   for(j=0;j<y-1;j++)
   {
	   for(i=100;i<y-j;i++)
	   {
		   if(bingren[i].o<bingren[i+1].o)
		   {
			   bingren[200]=bingren[i];
			   bingren[i]=bingren[i+1];
			   bingren[i+1]=bingren[200];
		   }
	   }
   }
   for(i=100;i<y;i++)
   {
	   printf("%s\n",bingren[i].id);
   }
   for(i=0;i<n;i++)
   {
	   if(bingren[i].o<60)
		   printf("%s\n",bingren[i].id);
   }
}
struct ILL{
	char id[10];
	int age;
};
int main()
{
	struct ILL ill[100];
    int n,i,k,j=0,Age[100],x;
	char a[100][10],b[10];
	scanf("%d",&n);
	for (i=0;i<n;i++){
		scanf("%s",ill[i].id);
	    scanf("%d",&ill[i].age);
	    if (ill[i].age>=60)
		{ strcpy(a[j],ill[i].id);
		  Age[j]=ill[i].age;
		  j++;
		}
	}
	for (i=0;i<j-1;i++){
		for (k=0;k<j-i-1;k++){
			if (Age[k]<Age[k+1]){
				strcpy(b,a[k+1]);
			    strcpy(a[k+1],a[k]);
			    strcpy(a[k],b);
				x=Age[k];
				Age[k]=Age[k+1];
				Age[k+1]=x;
			}
		}
	}
	for (i=0;i<j;i++){
		puts(a[i]);
	}
	for (i=0;i<n;i++){
		if (ill[i].age<60){
			printf("%s\n",ill[i].id);
		}
	}
	return 0;
}
int main()
{
	struct date
	{
		char a[10];
		int num;
		struct date *next;
	};
	struct date *p1,*p2,*head;
	int n,i,temp,j,compare;
	char tem[10];
	scanf("%d",&n);
	head=p1=p2=(struct date *)malloc(len);
	scanf("%s %d",head->a,&head->num);
	head->next=NULL;
	head=p1;
	for(i=2;i<=n;i++)
	{
		p2=(struct date *)malloc(len);
		scanf("%s %d",p2->a,&p2->num);
		p2->next=NULL;
		p1->next=p2;
		p1=p2;
	}
	for(i=n-1;i>=1;i--)
	{
		p1=head;p2=p1->next;
		for(j=1;j<=i;j++)
		{
			compare=strcmp(p1->a,p2->a);
			if(p1->num<60&&p2->num>=60)
			{
				strcpy(tem,p1->a);
				strcpy(p1->a,p2->a);
				strcpy(p2->a,tem);
				temp=p2->num;
				p2->num=p1->num;
				p1->num=temp;
			}
			if(p1->num>=60&&p2->num>=60&&p1->num<p2->num)
			{
				strcpy(tem,p1->a);
				strcpy(p1->a,p2->a);
				strcpy(p2->a,tem);
				temp=p2->num;
				p2->num=p1->num;
				p1->num=temp;
			}
			p1=p2;
			p2=p1->next;
		}
	}
	p1=p2=head;		
	for(i=1;i<=n;i++)
	{
		printf("%s\n",p2->a);
		p1=p2;
		p2=p1->next;
	}
	return 0;
}
main()
{
struct patient{
       char id[11];
       int age;
       }ren[100];
struct oldp{
       char idold[11];
       int ageold;
       }oldren[100];      
struct youngp{
       char idyoung[11];
       int ageyoung;
       }youngren[100];//????? 
int old[100],young[100];
int n,i,t,j,oldindex=0,youngindex=0;
char num[4],idinter[11];
gets(num);
n=atoi(num);
for(i=0;i<n;i++){
   scanf("%s %d",ren[i].id,&ren[i].age);//??id??? 
   }
for(i=0;i<n;i++){
   if(ren[i].age>=60){
      oldren[oldindex].ageold=ren[i].age;
      strcpy(oldren[oldindex].idold,ren[i].id);
      oldindex+=1;//??????? 
      }else{
           youngren[youngindex].ageyoung=ren[i].age;
           strcpy(youngren[youngindex].idyoung,ren[i].id);
           youngindex+=1;
            }//??????? 
   }
for(i=1;i<oldindex;i++){
   for(j=0;j<oldindex-i;j++){
      if(oldren[j].ageold<oldren[j+1].ageold){
        t=oldren[j].ageold;
        oldren[j].ageold=oldren[j+1].ageold;
        oldren[j+1].ageold=t;//???????? 
        strcpy(idinter,oldren[j].idold);//?????????id? 
        strcpy(oldren[j].idold,oldren[j+1].idold);
        strcpy(oldren[j+1].idold,idinter);
        }
      }
   }
for(i=0;i<oldindex;i++){
   printf("%s\n",oldren[i].idold);
   }
for(i=0;i<youngindex;i++){
    printf("%s\n",youngren[i].idyoung);
   }
   }
int main()
{
	struct patient
	{
		char id[10];
		int age;
	} a[100],m,k;
	int i,j,n,num=0;
	scanf("%d",&n);
	for (i=0;i<n;i++)
		scanf("%s %d",a[i].id,&a[i].age);
	for (i=0;i<n;i++)
	{
		if(a[i].age>=60)
		{
			num++;
			m=a[i];
			for (j=i;j>0;j--)
				a[j]=a[j-1];
			a[0]=m;
		}
	}
	for (i=0;i<num;i++)
	{
		for (j=i+1;j<num;j++)
		{
			if (a[i].age<=a[j].age)
			{
				k=a[i];
				a[i]=a[j];
				a[j]=k;
			}
		}
	}
	for (i=0;i<n;i++)
		printf("%s\n",a[i].id);
	return 0;
}
struct patient {
	int order;
	int age;
	char id[10];
};

int cmp(const void *a, const void *b) {
	const struct patient *pa = (const struct patient *) a;
	const struct patient *pb = (const struct patient *) b;
	if ((pa->age >= 60) && (pb->age < 60)) {
		return -1;
	}
	else if ((pa->age < 60) && (pb->age >= 60)) {
		return 1;
	}
	else if ((pa->age >= 60) && (pa->age != pb->age)) {
		return pb->age - pa->age;
	}
	else {
		return pa->order - pb->order;
	}
}

int main() {
	int i, num;
	struct patient pat[100];

	scanf("%d", &num);
	for (i = 0; i < num; ++i) {
		pat[i].order = i;
		scanf("%s %d", pat[i].id, &(pat[i].age));
	}

	qsort(pat, num, sizeof(struct patient), cmp);

	for (i = 0; i < num; ++i) {
		printf("%s\n", pat[i].id);
	}
}
int main()
{
	int x[100],y[100],z[100],a,b=1,c=1,d=1,e=1,f,g,h,j,k,n;
	char o[100][10],p[100][10],q[100][10],r[100][10];
	scanf("%d",&n);
	for(a=1;a<=n;a++)
	{
		scanf("%s",o[a]);
		scanf("%d",&x[a]);
		if(x[a]>=60)
		{
			strcpy(p[b],o[a]);
			b++;
			y[c]=x[a];
			c++;
		}
		else
		{
			strcpy(q[d],o[a]);
			d++;
			z[e]=x[a];
			e++;
		}
	}
	for(f=1;f<=b-2;f++)
	{
		for(g=1;g<=b-2;g++)
		{
			if(y[g]<y[g+1])
			{
				h=y[g];
				y[g]=y[g+1];
				y[g+1]=h;
				strcpy(r[1],p[g]);
				strcpy(p[g],p[g+1]);
				strcpy(p[g+1],r[1]);
			}
		}
	}
	for(j=1;j<=b-1;j++)
	{
		printf("%s\n",p[j]);
	}
	for(k=1;k<=d-1;k++)
	{
		printf("%s\n",q[k]);
	}
	return 0;
}
struct student 
{
	char num[200];
	int sum;
    struct student *next;
};

void main()
{
	int n,i;
	struct student *p1,*p2,*p3,*head;
	scanf("%d",&n);
	for (i=0;i<n;i++)                                           
	{
		p2=(struct student*)malloc(sizeof(struct student));
		if(i==0)
		{head=p2;p3=head;}
		scanf("%s %d",p2->num,&p2->sum);        
			p2->next=NULL;
		if(p2->sum>=60){
           if(i==1){
			if(head->sum>=p2->sum){
			  head->next=p2;
			  p2->next=NULL;p3=p2;
			}
			else{p1=head;
			  p2->next=head;
			  head=p2;
			}
		}
	   if(i>1){
		for(p1=head;p1->next!=NULL;p1=p1->next){
			if(p1->sum>=p2->sum&&(p1->next->sum)<p2->sum){
				   p2->next=p1->next;
				   p1->next=p2;
				   break;
				}
			}			
		if(p2->next==NULL){
			if(p2->sum>head->sum){
			   p2->next=head;
			     head=p2;
			}
			if(p2->sum<p1->sum){
		            p2->next=NULL;p3=p2;
			    p1->next=p2;
		        }
			}
	   }
		}
		else{
			if(i!=0){
		 p2->next=NULL;
		 p3->next=p2;p3=p2;}
		}
	}
	p1=head;
    for (i=0;(i<n&&p1!=NULL);i++)
	{
		printf("%s\n",p1->num);
		p1=p1->next;
	}
}
int main()
{
	int n,i,j,h=0,k=1,b=0;
	char a[120][20],c[120][20];
	int y[120],Z[155][100]={0},cy[120];
	scanf("%d",&n);

	for(i=1;i<=n;i++)
	{
		scanf("%s %d",a[i],&y[i]);
	}

	for(i=60;i<=150;i++)
	{
		for(j=1;j<=n;j++)
		{
			Z[i][h]=0;
			if(i==y[j])
			{
				Z[i][h]=j;
				h++;
			}
		}
		h=0;
	
	}
	for(i=1;i<=n;i++)
	{
		if(y[i]<60)
		{
			strcpy(c[k],a[i]);
			cy[k]=y[i];
            b=k;
			k++;
		}
	}

	h=0;
	for(i=150;i>=60;i--)
	{
		for(h=0;h<=10;h++)
		{
			if(Z[i][h]==0) break;
		    else
			{
				printf("%s\n",a[Z[i][h]]);
			}
		}
	}
	for(i=1;i<=b;i++)
	{
		printf("%s\n",c[i]);
	}
	return 0;








	


}
struct a
{int year;
 char id[10];
 struct a *next;
};
struct a *create(int n)
{struct a *p1,*p2,*head;
int i;
p1=(struct a*)malloc(len);
scanf("%s%d",p1->id,&p1->year);
p1->next=NULL;
head=p1;
p2=p1;
for(i=1;i<n;i++)
{p1=(struct a*)malloc(len);
scanf("%s%d",p1->id,&p1->year);
p1->next=NULL;
p2->next=p1;
p2=p1;
}
return head;
}
void main()
{
	struct a *head,*p,*q,*t[100];
	int m,i,j=0,k;
	scanf("%d",&m);
	head=create(m);
	p=head;
	for(i=0;i<m;i++)
	{if(p->year>=60){t[j]=p;j++;}
	p=p->next;
	}
	for(k=0;k<j-1;k++)
		for(i=0;i<j-1-k;i++)
			if(t[i]->year<t[i+1]->year)
			{p=t[i];
			t[i]=t[i+1];
			t[i+1]=p;
			}
	for(i=0;i<j;i++)
			printf("%s\n",t[i]->id);
	p=head;
	j=0;
	for(i=0;i<m;i++)
	{if(p->year<60){t[j]=p;j++;}
	p=p->next;
	}
	for(i=0;i<j;i++)
			printf("%s\n",t[i]->id);	
}
struct bingren{
	char id[1000];
	int age;
}bin[101];

int main(int argc, char* argv[])
{	int n;
	scanf("%d",&n);
	int i,j,k=0,l=0,e,a[100];
		char xiao[101][1000],da[101][1000],c[1000];
	for(i=0;i<n;i++){
		scanf("%s %d",&bin[i].id,&bin[i].age);
	}
	for(i=0;i<n;i++){
		if(bin[i].age<60){
			strcpy(xiao[k],bin[i].id);
			k++;}
		else {
			strcpy(da[l],bin[i].id);
			a[l]=bin[i].age;
			l++;}
		}
	for(i=0;i<l;i++){
		for(j=0;j<l-i;j++){
			if(a[j]<a[j+1]){
				strcpy(c,da[j+1]);
				strcpy(da[j+1],da[j]);
				strcpy(da[j],c);
			    e=a[j+1];a[j+1]=a[j];a[j]=e;
			}
		}
		
	}
	for(i=0;i<l;i++){
		printf("%s\n",da[i]);
	}
	for(i=0;i<k;i++){
			printf("%s\n",xiao[i]);
	}

	return 0;
}
struct bin
{
	char num[10];
	int age;
}t,b[100],c[100],a[100];
void main()
{
	int n,i,j=0,k=0,p,q;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s%d",a[i].num,&a[i].age);
		if(a[i].age>=60)
		{
			b[j]=a[i];
			j++;
		}
		p=j;
		if(a[i].age<60)
		{
			c[k]=a[i];
			k++;
		}
		q=k;
	}
    
	for(j=1;j<p;j++)
	for(i=0;i<p-j;i++)
	{
		if(b[i].age<b[i+1].age)
		{
          t=b[i];
		  b[i]=b[i+1];
		  b[i+1]=t;
		}
	}
    for(i=0;i<p;i++) 
		printf("%s\n",b[i].num);
    for(i=0;i<q;i++)
		printf("%s\n",c[i].num);
}
int main()
{
	int n,age[100],i,j;
	char id[100][11],str[11];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s%d",id[i],&age[i]);
	}
	for(i=110;i>=60;i--)
	{
		for(j=0;j<n;j++)
		{
			if(age[j]==i)
			{
				printf("%s\n",id[j]);
				age[j]=0;
			}
		}
	}
	for(i=0;i<n;i++)
	{
		if(age[i]!=0)
			printf("%s\n",id[i]);	
	}
	return 0;
}
struct peo{
	char id[11];
	int age;
};

int main(){
	struct peo people[100];
	struct peo sixty[100];

	int n,b=0,i,j,k,e;
	char a[11];

	scanf("%d",&n);

	for(i=0;i<n;i++){
		scanf("%s %d",people[i].id,&people[i].age);
		if(people[i].age>=60){
			sixty[i].age=people[i].age;
			strcpy(sixty[i].id,people[i].id);
			b+=1;
		}else{
			strcpy(sixty[i].id,"0000");
			sixty[i].age=0;
		}
	}

	for(k=0;k<n-1;k++){
		for(i=n-1;i>k;i--){
			if(sixty[i-1].age<sixty[i].age){
				e=sixty[i-1].age;
				sixty[i-1].age=sixty[i].age;
				sixty[i].age=e;
				strcpy(a,sixty[i-1].id);
				strcpy(sixty[i-1].id,sixty[i].id);
				strcpy(sixty[i].id,a);
			}
		}
	}
	for(i=0;i<b;i++){
		printf("%s\n",sixty[i].id);
			
	}
	for(i=0;i<n;i++){
		if(people[i].age<60){
			printf("%s\n",people[i].id);
		}
	}
	

	return 0;
	
}
typedef struct {
	char id[20];
	int age;
} patient;
int main()
{
	patient a[100],b[100],c[100],temp;
	int n,i,j,k=0,l=0;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s %d",a[i].id,&a[i].age);
		if(a[i].age>=60) 
		{for(j=0;j<20;j++)
		 {b[k].id[j]=a[i].id[j];
		 b[k].age=a[i].age;}k++;}
	    else {for(j=0;j<20;j++)
		{c[l].id[j]=a[i].id[j];}l++;}
	}
	for(i=k-1;i>0;i--)
	 {
 		for(j=0;j<i;j++)
 		{
		 	if(b[j].age<b[j+1].age)
		 	{
	 		    temp=b[j];
	 		    b[j]=b[j+1];
	 		    b[j+1]=temp;
 			}
	    }
 	}
 	for(i=0;i<k;i++)
	 printf("%s\n",b[i].id);
    for(i=0;i<l;i++)
      printf("%s\n",c[i].id);
}
int main(){
	char tmp[100];
	int n,i,j=0,o=0,tmpn;
	struct{
		char num[100];
		int a,k;
	}s[1000],t[1000];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%s%d",s[i].num,&s[i].a);
		if(s[i].a>=60)s[i].k=1;
		else s[i].k=0;
	}
	for(i=0;i<n;i++){
		if(s[i].k==1){
			strcpy(t[j].num,s[i].num);
			t[j].a=s[i].a;
			j++;
			o++;
		}
	}
	for(i=n-1;i>0;i--){
		for(j=0;j<i;j++){
			if(t[j].a<t[j+1].a){
				tmpn=t[j].a;
				t[j].a=t[j+1].a;
				t[j+1].a=tmpn;
				strcpy(tmp,t[j].num);
				strcpy(t[j].num,t[j+1].num);
				strcpy(t[j+1].num,tmp);
			}
		}
	}
	for(i=0;i<o;i++)printf("%s\n",t[i].num);
	for(i=0;i<n;i++){
		if(s[i].k==1)continue;
		printf("%s\n",s[i].num);
	}
	return 0;
}
struct patient
{
	char num[10]; 
	int age;
}pat[100];
int main()
{
	int n,i,m,k,f,j;
	char e[10];
    m=0;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%s%d",&pat[i].num,&pat[i].age);
		if(pat[i].age>=60){
		    strcpy(e,pat[i].num);
			f=pat[i].age;
			for(k=i;k>m;k--){
				strcpy(pat[k].num,pat[k-1].num);
			}strcpy(pat[m].num,e);
		    pat[m].age=f;
			m++;
		}
	}for(i=0;i<m;i++){
		for(k=0;k<i;k++){
			if(pat[i].age>pat[k].age){
				f=pat[i].age;
			    strcpy(e,pat[i].num);
				for(j=i;j>k;j--){
					pat[j].age=pat[j-1].age;
					strcpy(pat[j].num,pat[j-1].num);
				}pat[k].age=f;
			    strcpy(pat[k].num,e);
			}
		}
	}
	for(i=0;i<n;i++){
		printf("%s\n",pat[i].num);
	}
	return 0;
}
int main()
{
    struct patient_t {
        char id[10];
        int age;
    } patients[100], t;
    int i, j, n;
    scanf("%d", &n);
    for (i=0; i<n; i++) {
        scanf("%s%d", &patients[i].id, &patients[i].age);
    }
    for (i=0; i<n; i++) {
        for (j=n-1; j>i; j--) {
            if (patients[j].age >= 60 &&
                patients[j].age > patients[j-1].age) {
                t = patients[j];
                patients[j] = patients[j-1];
                patients[j-1] = t;
            }
        }
    }
    for (i=0; i<n; i++) {
        printf("%s\n", patients[i].id);
    }
    return 0;
}
struct stu
{
	int w;
	char c[10];
	struct stu *next;
};
int n;
struct stu*creat(int m)
{
	struct stu *head,*p1,*p2,*p3;
	int i;
	n=0;
	p1=p2=(struct stu*)malloc(sizeof(struct stu));
	head=p1;
	p1->next=NULL;
	n=0;
	scanf("%s %d",p1->c,&p1->w);
    for(i=0;i<m-1;i++)
	{   p1=(struct stu*)malloc(sizeof(struct stu));
	scanf("%s %d",p1->c,&p1->w);
	if(p1->w<60)
	{for(p2=head;p2->next!=NULL;p2=p2->next)
			;
		p2->next=p1;
		p1->next=NULL;
	}
	else
	{
    p2=head;
	while((p1->w<=p2->w)&&(p2->next!=NULL))
	{
		p3=p2;
		p2=p2->next;
	}
	if(p1->w>p2->w)
	{
		if(head==p2)
			head=p1;
		else p3->next=p1;
		p1->next=p2;
	}
	else
	{p2->next=p1;p1->next=NULL;
	}
    }
	}
	 return(head);
	
}
void main()
{
	int m,i;
	struct stu *head,*p;
	scanf("%d",&m);
	head=creat(m);
	p=head;
	for(i=0;i<m;i++)
	{printf("%s\n",p->c);
		
		p=p->next;
	}
	
}
struct staff
{
	char id[20];
	int age;
	struct staff*next;
};

void main()
{
	int n,k=0,max=59;
	struct staff*head,*p,*q,*pre;
	scanf("%d",&n);

	struct staff *p1,*p2;

	p1=(struct staff*)malloc(LEN);
	scanf("%s %d",p1->id,&p1->age);
	head=p2=p1;
	if(p1->age>=60) k++;

	while(n-1)
	{
		n--;
		p1=(struct staff *)malloc(LEN);
		scanf("%s %d",p1->id,&p1->age);
		if(p1->age>=60) k++;
		p2->next=p1;
		p2=p1;
	}
	p2->next=NULL;

	//printf("<%d>",k);
	
	while(k)
	{
		p=head;
		k--;
		while(p)
		{
		  if(p->age>max)
		  {
			max=p->age;
			q=p;
		  }
		  p=p->next;
		}
		printf("%s\n",q->id);
		if(q==head)
		{
			head=q->next;
			free(q);
		}
		else 
		{
			if(q->next==NULL)
			{
			  p=head;
			  while(p)
			  {
				  pre=p;
				  p=p->next;
				  if(p==q)
				  {
					free(q);
					pre->next=NULL;
					break;
				  }
			  }
			}

		    else
			{
			  p=head;
			  while(p)
			  {
				pre=p;
				p=p->next;
				if(p==q)
				{
					p=p->next;
					pre->next=p;
					free(q);
					break;
				}
			  }
			}
		}
		max=59;
	}

		p=head;
		while(p)
		{
			printf("%s\n",p->id);
			p=p->next;
		}
}
struct pat
{
       char num[10];
	   int age;
       struct pat *next;
};

struct pat *creat(int n)
{
       struct pat *p1,*p2,*head;
       int i; 
	p2=head=p1=(struct pat *)malloc(sizeof(struct pat));
    for(i=0;i<n;i++)
	{
		scanf("%s %d",p1->num,&p1->age);
		if(i==0)
			head=p1;
        p2->next=p1;
		p2=p1;
		p1=(struct pat *)malloc(sizeof(struct pat));
	}
	p2=NULL;
	return head;
}


void array(struct pat *head,int n)
{
     int i,j,ta;
	 char str[10];
     struct pat *p1,*p2;
	 p1=head;
     for(i=0;i<n-1;i++)
     {
       for(j=0;j<n-1-i;j++)
       {
                 p2=p1;
                 p1=p1->next;
                 if((p1->age)>(p2->age)&&(p1->age)>=60)
                 {
                                                     
                                          strcpy(str,p2->num);
                                          strcpy(p2->num,p1->num);
                                          strcpy(p1->num,str);                                                           
                                          ta=p1->age;
										  p1->age=p2->age;
										  p2->age=ta;
                                      }
                     }
       p1=head;
     }
}  
   
void main()
{
      int n;
      scanf("%d",&n);
      struct pat *p;
      p=creat(n);
	  array(p,n);
     int i; 
     for(i=0;i<n;i++)
     {
      printf("%s\n",p->num);
      p=p->next;
     }
}
int main()
{
    int n;
    scanf("%d",&n);
    char a[n][100];
    int b[n],i,j,c[n],d[n],k;
    for(i=0;i<n;i++)
    scanf("%s%d",a[i],&b[i]);
    for(i=0;i<n;i++)
    {
        c[i]=0;
        d[i]=n;
        for(j=0;j<n;j++)
        {
                  if(b[j]>=60&&b[j]>c[i])
                  {
                       for(k=0;k<i;k++)
                       {
                           if(j==d[k])
                           break;
                       }
                       if(k==i)
                       {
                           c[i]=b[j];
                           d[i]=j;
                       }
                  }
        }
        if(d[i]!=n&&b[d[i]]>=60)
        printf("%s\n",a[d[i]]);
    }
    for(i=0;i<n;i++)
    {
         if(b[i]<60)
         printf("%s\n",a[i]);
    }
    getchar();
    getchar();
}
struct bing
{
       char a[10];
       int age;
};
struct bing bing[1000];
int main()
{
    int n,i,j=1,v=1,k,t[1000],m,p[1000];
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
     scanf("%s%d",&bing[i].a,&bing[i].age);
     if(bing[i].age>=60)
     {
        t[j]=i;
        j++;
        }
     else
     {
         p[v]=i;
         v++;
      }
        }
     j--;
     v--;
    if(j!=0)
    {
        for(i=1;i<j;i++)
         for(k=1;k<j-i+1;k++)
         if(bing[t[k]].age<bing[t[k+1]].age)
         {
            m=t[k];
            t[k]=t[k+1];
            t[k+1]=m;
            }
    }
    for(i=1;i<=j;i++)
    printf("%s\n",bing[t[i]].a);
    for(i=1;i<=v;i++)
    printf("%s\n",bing[p[i]].a);
    getchar();
    getchar();
    getchar();
}