import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;

public class banking {

	public static void main(String[] args) throws Exception{
		BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));
		HashMap<String,Double> bank = null;

		int accounts = 0;

		while ((accounts = Integer.parseInt(rd.readLine()))!= 0){
			bank = new HashMap<String,Double>();
			for (int i=0;i<accounts;i++){
				String lineData[] = rd.readLine().split(" +");
				bank.put(lineData[0],Double.valueOf(lineData[1]));
				//System.out.println(lineData[0]+"~"+lineData[1]);
			}
			String lineAction = null;
			String lineActions[] = null;
			while (!(lineAction = rd.readLine()).equals("end")){
				lineActions = lineAction.split(" +");
				String msg = lineActions[0];
				if (lineActions[0].equals("create")){
					if (bank.get(lineActions[1])==null){
						bank.put(lineActions[1],new Double(0.0));
						msg+=": ok";
					}
					else {
						msg+=": already exists";
					}
				}
				else if (lineActions[0].equals("withdraw")){
					if (bank.get(lineActions[1])!=null){
						if (bank.get(lineActions[1])>=Double.valueOf(lineActions[2])){
							bank.put(lineActions[1],bank.get(lineActions[1])-Double.valueOf(lineActions[2]));
							msg+=" "+lineActions[2]+": ok";
						} else {
							msg+=" "+lineActions[2]+": insufficient funds";
						}
					}
					else {
						msg+=" "+lineActions[2]+": no such account";
					}
				}
				else if (lineActions[0].equals("deposit")){
					if (bank.get(lineActions[1])!=null){
						bank.put(lineActions[1],bank.get(lineActions[1])+Double.valueOf(lineActions[2]));
						msg+=" "+lineActions[2]+": ok";
					}
					else {
						msg+=" "+lineActions[2]+": no such account";
					}
				}
				else if (lineActions[0].equals("transfer")){
					if (bank.get(lineActions[1])!=null && bank.get(lineActions[2])!=null){
						if (lineActions[1].equals(lineActions[2])){
							msg += " "+lineActions[3]+": same account";
						} else if (bank.get(lineActions[1])<Double.valueOf(lineActions[3])){
							msg+=" "+lineActions[3]+": insufficient funds";
						} else {
							bank.put(lineActions[2],bank.get(lineActions[2])+Double.valueOf(lineActions[3]));
							bank.put(lineActions[1],bank.get(lineActions[1])-Double.valueOf(lineActions[3]));
							if (lineActions[1].charAt(5) != lineActions[2].charAt(5)) {
								msg+=" "+lineActions[3]+": interbank";
							} else {
								msg+=" "+lineActions[3]+": ok";
							}
						}
					}
					else {
						msg+=" "+lineActions[3]+": no such account";
					}
				}
				System.out.println(msg);
			}
			System.out.println("end");
			rd.readLine();
			System.out.println();	
		}
		System.out.println("goodbye");
	}
}
