/*
ID: cinject1
PROG: gift1
TASK: gift1
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <map>
#include <string>
using namespace std;
int main()
{
ifstream in("gift1.in");
ofstream out("gift1.out");
map<string, int> friends;
int nFriends(0);
in>>nFriends;
string *indexes = new string[nFriends];
//read in friend names
for (int l=0; l < nFriends; l++)
{
string name;
in>>name;
friends[name] = 0;
indexes[l] = name;
}
//Begin the madness!
for (int i=0; i < nFriends; i++)
{
string from;
int amount(0);
int between(0);
int toGive(0);
in>>from;
in>>amount;
in>>between;
friends[from] -= amount;
if (between)
{
toGive = amount / between;
friends[from] += amount % between;
}
else
{
friends[from] -= amount;
}
for (int j=0; j < between; j++)
{
string who;
in>>who;
friends[who] += toGive;
}
}
//Output the state after the aforementioned madness
for (int iter=0; iter < nFriends; iter++)
{
out<< indexes[iter] <<" "<< friends[ indexes[iter] ] <<endl;
}
delete [] indexes;
return 0;
}