#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int lld; typedef pair PII; const int INF = (1<<31)-1; const lld LINF = (1LL<<63)-1; const int NMAX = 100000+5; const int MMAX = 100000+5; const int KMAX = 100000+5; const int PMAX = 100000+5; const int LMAX = 100000+5; const int VMAX = 100000+5; int N,i,j,var,ok,width,precision; char *p,*r,op[105],str[30][105]; char text[105]; deque S; int main() { //freopen("input.txt","r",stdin); //freopen("output.txt","w",stdout); scanf("%d",&N); for(i=1; i<=N; i++) { scanf("%s",op); var=op[0]-'a'; for(p=op+2,j=0; *p; p++,j++) str[var][j]=*p; str[var][j]=0; } fgets(text,105,stdin); fgets(text,105,stdin); N=strlen(text); for(p=text; *p!='\n'; p++) if(*p==',') ok++; for(p=text+N-2,i=0; p!=text && i!=ok; p--) { if(*p>='a' && *p<='z') S.push_back(*p-'a'); else i++; } for(p=text; *p!=','; p++) if(*p=='%') { p++; if(*p=='s') printf("%s",str[S.back()]); else if(*p>='1' && *p<='5') { width=*p-'0'; N=strlen(str[S.back()]); for(i=1; i<=width-N; i++) printf(" "); printf("%s",str[S.back()]); p++; } else if(*p=='.') { p++; precision=*p-'0'; for(r=str[S.back()]; *r!='.'; r++) printf("%c",*r); printf("%c",*r); r++; for(i=1; i<=precision; i++,r++) { if(*r) printf("%c",*r); else printf("0"); } p++; } S.pop_back(); } else printf("%c",*p); return 0; }