Pretty simple.
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Scanner;
/**
*
* @author Sanchit M. Bhatnagar
* @see http://uhunt.felix-halim.net/id/74004
*
*/
public class P119 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
PrintWriter out = new PrintWriter(System.out);
boolean first = true;
while (sc.hasNextInt()) {
if (!first)
out.println();
int N = sc.nextInt();
String[] friends = new String[N];
HashMap<String, Integer> map = new HashMap<String, Integer>();
for (int i = 0; i < N; i++) {
friends[i] = sc.next();
map.put(friends[i], i);
}
int[] moneys = new int[N];
for (int i = 0; i < N; i++) {
int idx = map.get(sc.next());
int gift = sc.nextInt();
int M = sc.nextInt();
if (M > 0) {
moneys[idx] -= gift;
if (gift != 0 && gift % M != 0) {
int t = gift % M;
moneys[idx] += t;
gift -= t;
}
for (int j = 0; j < M; j++) {
moneys[map.get(sc.next())] += gift / M;
}
}
}
for (int i = 0; i < N; i++) {
out.println(friends[i] + " " + moneys[i]);
}
first = false;
}
out.close();
sc.close();
}
}