/*
LANG:C++
TASK:wac
*/
#include <iostream>
#include <string>
#include <map>
#include <vector>
#include <sstream>
#include <string.h> 
#include "module.h" 
using namespace std;

char in[128];
string input;
vector<string> v;
map<string, pair<string,int> > last;
int vsz;

bool check(string s,int ind,int sz) {
     for(int i=0;i<sz;i++) if(s[i] != v[ind][i]) return false;
     return true;
}
int getInd(int start,string word) {
    if(vsz==0) return -1;
    int sz = word.size();
    int all = 0;
    int i = start;
    i%=vsz;
    while(1) {
//             if(word == v[i].substr(0,sz)) return i;
             if(check(word,i,sz)) return i;
             i++;
             i%=vsz;
             all++;
             if(all>vsz+10) break;
    }
    return -1; // 
}

int main() { 
    init(); 
    vsz=0;
    int i = 0;
    while(1) {
             i++;
             getQuery(in);
             input = "";
             for(int i=0;i<strlen(in);i++) input += (char)in[i]; 
             if(input[0]=='A') {
               string nword;
               istringstream iss(input);
               while(iss>>nword) {}
               v.push_back(nword);
               vsz++;
             }
             else {
               if(input[0]=='F') {
                 string s1,s2,s3;
                 istringstream iss(input);
                 iss >> s1 >> s2 >> s3;
                 last[s2].first = s3;
                 int cind = getInd(0,s3);
                 last[s2].second = cind;
                 if(cind==-1) {
                              answerQuery(".");
                 }
                 else {
                      char x[128];
                      for(int i=0;i<v[cind].size();i++)
                              x[i] = v[cind][i];
                      x[v[cind].size()] = '\0';
                      answerQuery(x);
                 }
               }
               else {
                    string s1,s2;
                    istringstream iss(input);
                    iss >> s1 >> s2;
                    string pred = last[s2].first;
                    int ind = last[s2].second;
                    int cind = getInd(ind+1,pred);
                    last[s2].second = cind;
                    char x[128];
                    for(int i=0;i<v[cind].size();i++) x[i] = v[cind][i];
                    x[ v[cind].size() ] = '\0';
                    answerQuery(x);
               }
             }
    } 
    return 0; 
} 
