/*
TASK: wac
LANG: C
*/

#include<module.h>
#include<string.h>

char curquery[128];
int n,i,j,k,t,m,por,f;
char string[16384][128];
char pr[131072][128];
char num[128];
char prefix[128];
char  number[131072][128];
int strings,numbers;
int next[131072];

int main () {
    init();
    while(1) {
             getQuery(curquery);
             n=strlen(curquery);
             if (curquery[0]=='A') {
                for (i=4;i<n;i++) string[strings][i-4]=curquery[i];
                string[strings][i-4]=0;
                strings++;
                }
             else {
                  if (curquery[0]=='F') {
                     for (i=6;curquery[i]!=' ';i++)
                         num[i-6]=curquery[i];
                     num[i-6]=0;
                     k=i-6;
                     for (j=i+1;j<n;j++)
                         prefix[j-i-1]=curquery[j];
                     t=n-i-1;
                     for (i=0;i<numbers;i++) {
                         m=strlen(number[i]);
                         if (m==k) {
                            j=0;
                            while (number[i][j]==num[j]&&j<m) j++;
                            if (j==m) {
                               for (j=0;j<t;j++) pr[i][j]=prefix[j];
                               por=i;
                               break;
                               }
                            }
                         }
                     if (i==numbers) {
                        for (j=0;j<k;j++) number[numbers][j]=num[j];
                        for (j=0;j<t;j++) pr[numbers][j]=prefix[j];
                        next[numbers]=0;
                        por=numbers;
                        numbers++;
                        }
                     f=1;
                     for (i=next[por];i<strings;i++) {
                         for (j=0;j<t;j++)
                             if (string[i][j]!=pr[por][j]) break;
                         if (j==t) {f=0;next[por]=i+1;answerQuery(string[i]);break;}
                         }
                     if (i==strings)
                        if (!next[por]) answerQuery(".");
                        else {
                             for (i=0;i<strings;i++) {
                                 for (j=0;j<t;j++)
                                     if (string[i][j]!=pr[por][j]) break;
                                 if (j==t) {f=0;next[por]=i+1;break;}
                                 }
                             if (i==strings&&!next[por]) answerQuery(".");
                             else answerQuery(string[i]);
                             }
                     }
                  else {
                       for (i=5;i<n;i++)
                           num[i-5]=curquery[i];
                       num[i-5]=0;
                       k=n-5;
                       for (i=0;i<numbers;i++) {
                         m=strlen(number[i]);
                         if (m==k) {
                            j=0;
                            while (number[i][j]==num[j]&&j<m)j++;
                            if (j==m) {por=i;break;}
                            }
                         }
                       if (i==numbers) answerQuery(".");
                       else {
                            f=1;
                            t=strlen(pr[por]);
                            for (i=next[por];i<strings;i++) {
                                for (j=0;j<t;j++)
                                    if (string[i][j]!=pr[por][j]) break;
                                if (j==t) {f=0;next[por]=i+1;answerQuery(string[i]);break;}
                                }
                            if (i==strings)
                            if (!next[por]) answerQuery(".");
                            else {
                                 for (i=0;i<strings;i++) {
                                     for (j=0;j<t;j++)
                                         if (string[i][j]!=pr[por][j]) break;
                                     if (j==t) {f=0;next[por]=i+1;break;}
                                     }
                                 if (i==strings&&!next[por]) answerQuery(".");
                                 else answerQuery(string[i]);
                                 }
                          }
                       }
                  }
             }
    return 0;
    }
