#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define pb push_back #define mp make_pair #define sz(a) ((int)(a.size())) #define all(a) a.begin(),a.end() #define eps 1e-11 #define REP(i,n) for(int (i)=0;i<(n);++i) #define REPS(i,n) for(int(i)=0;i<(n.size());++i) #define FOR(i,a,b) for(int(i)=(a);i<=(b);++i) #define FORD(i,a,b) for(int(i)=(a);i>=(b);--i) #define FORE(it,c) for(__typeof((c).begin()) it=(c).begin();it!=(c).end();++it) #define LL long long #define SQR(a) ((a)*(a)) int N; map A[100]; string sval; char nosuch[]="no such account"; char insuf[]="insufficient funds"; int main() { while(scanf("%d",&N),N) { REP(i,100)A[i].clear(); REP(i,N) { int x,b;double m;char ch; // scanf("%d%c%d %lf",&x,&ch,&b,&m); cin>>x>>ch>>b>>m; // cout<>sval,sval!="end") { cout<>x>>ch>>b; printf(": "); if (A[b].count(x)==0)A[b][x]=0,puts("ok"); else puts("already exists"); } if (sval=="withdraw") { int x,b;char ch;double m; // scanf("%d%c%d %lf",&x,&ch,&b,&m); cin>>x>>ch>>b>>m; printf(" %.2lf: ",m); if (A[b].count(x)==0)puts(nosuch); else if (A[b][x]>x>>ch>>b>>m; printf(" %.2lf: ",m); if (A[b].count(x)==0)puts(nosuch); else A[b][x]+=m,puts("ok"); } if (sval=="transfer") { int x,b,x2,b2;char ch;double m; // scanf("%d%c%d %d%c%d %lf",&x,&ch,&b,&x2,&ch,&b2,&m); cin>>x>>ch>>b; cin>>x2>>ch>>b2>>m; printf(" %.2lf: ",m); if (A[b].count(x)==0)puts(nosuch); else if (A[b2].count(x2)==0)puts(nosuch); else if (x==x2&&b==b2) puts("same account"); else if (A[b][x]