#include <cstdio>
#include <vector>
#include <algorithm>
struct Query
{
int id;
int period;
int t;
};
bool cmp(const Query &lhs, const Query &rhs)
{
return lhs.t > rhs.t || (lhs.t == rhs.t && lhs.id > rhs.id);
}
void Solve(int k, std::vector <Query> &queies)
{
int lastPos = (int)queies.size() - 1;
make_heap(queies.begin(), queies.end(), cmp);
while (k-- > 0)
{
Query reachQ = queies.front();
printf("%d/n", reachQ.id);
pop_heap(queies.begin(), queies.end(), cmp);
queies[lastPos].t += queies[lastPos].period;
push_heap(queies.begin(), queies.end(), cmp);
}
}
int main()
{
char s[100];
int id, t;
std::vector <Query> queies;
queies.reserve(1000);
Query q;
q.t = 0;
while (scanf("%s", s) && strcmp(s, "#") != 0)
{
scanf("%d %d", &q.id, &q.period);
q.t = q.period;
queies.push_back(q);
}
int k;
scanf("%d", &k);
Solve(k, queies);
return 0;
}