import java.util.*;
import java.io.*;
import java.awt.Point;
import java.util.regex.*;
import java.math.*;
import java.text.*;
/**
 *
 * @author James Brocklebank
 */
public class _3 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        Scanner fin = new Scanner(new FileReader("DATA3.txt"));
        PrintWriter fout = new PrintWriter(new FileWriter("OUT3.txt"));
        Vector<bill> bills = new Vector<bill>();

        while(fin.hasNext()) {
            bills = new Vector<bill>();
            int nBills = fin.nextInt();
            for(int i=0;i<nBills;i++) {
                bills.add(new bill(fin.next(),fin.nextInt()));
            }

            int nCorrections = fin.nextInt();

            for(int i=0;i<nCorrections;i++) {
                String sBill = fin.next();
                int nVal = fin.nextInt();
                

                for(int x=0;x<nBills;x++) {
                    bill next = bills.get(x);
                    if(next.sName.equals(sBill)) {
                        if(nVal>next.nVal) {
                            nVal -= next.nVal;
                            next.nVal = 0;
                          
                        } else {
                            next.nVal = next.nVal -nVal;
                        }
                        next.bAdjusted = true;
                    }

                    if(nVal == 0) break;
                } 
            }


            for(int x=0;x<nBills;x++) {
                if(bills.get(x).bAdjusted) {
                    fout.println(bills.get(x).sName + " " + bills.get(x).nVal);
                }
                
            }
        }

        fout.close();
        fin.close();
    }

}

class bill {
    String sName;
    int nVal;
    boolean bAdjusted =false;

    bill(String name, int val) {
        sName = name;
        nVal = val;
    }

}

