#include<iostream>
#include<queue>
#include<algorithm>
#include<map>
#include<string.h>
#include<math.h>
#include<stdio.h>
#include <iomanip>
#include <stack>
#include <vector>
#include <sstream>
using namespace std;
int i,j;
struct query
{
int no;
int interval;
int previous_interval;
};
query Register[3001];
bool cmp(const query &a,const query &b)
{
if(a.interval<b.interval)
return true;
else if(a.interval==b.interval)
return a.no<b.no;
else return false;
}
int init()
{
int index=0;
string str;
while(cin>>str && str!="#")
{
cin>>Register[index].no>>Register[index].interval;
Register[index].previous_interval = Register[index].interval;
index++;
}
return index;
}
int main()
{
int Size = init();
int m;
scanf("%d",&m);
for(i=0;i<m;i++)
{
sort(Register,Register+Size,cmp);
printf("%d\n",Register[0].no);
for(j=1;j<Size;j++)
Register[j].interval-=Register[0].interval;
Register[0].interval = Register[0].previous_interval;
}
return 0;
}
#include<queue>
#include<algorithm>
#include<map>
#include<string.h>
#include<math.h>
#include<stdio.h>
#include <iomanip>
#include <stack>
#include <vector>
#include <sstream>
using namespace std;
int i,j;
struct query
{
int no;
int interval;
int previous_interval;
};
query Register[3001];
bool cmp(const query &a,const query &b)
{
if(a.interval<b.interval)
return true;
else if(a.interval==b.interval)
return a.no<b.no;
else return false;
}
int init()
{
int index=0;
string str;
while(cin>>str && str!="#")
{
cin>>Register[index].no>>Register[index].interval;
Register[index].previous_interval = Register[index].interval;
index++;
}
return index;
}
int main()
{
int Size = init();
int m;
scanf("%d",&m);
for(i=0;i<m;i++)
{
sort(Register,Register+Size,cmp);
printf("%d\n",Register[0].no);
for(j=1;j<Size;j++)
Register[j].interval-=Register[0].interval;
Register[0].interval = Register[0].previous_interval;
}
return 0;
}