/*
TASK:wac
LANG:c++
*/

#include "module.h"
#include <vector>
#include <string>
#include <cstdlib>

using namespace std;

typedef char str[31];

char input[64];
vector<string> dict;

typedef struct bla
{
  long long num;
  string pref;
  long i;
}nums;

nums num[1000000];

long long numi(long long n)
{
  static long i;
  i=n%1000000;
  while(num[i].num!=n&&num[i].num!=-1)
  {
    ++i;
    if(i==1000000)
      i=0;
  }
  return i;
}

long addnum(long long n, string pr)
{
  static long i;
  i=numi(n);
  num[i].num=n;
  num[i].pref=pr;
  num[i].i=0;
  return i;
}

int cmpp(string pref, string word)
{
  static long i;
  if(pref.length()>word.length())
    return 0;
  for(i=0; i<pref.length(); ++i)
    if(pref[i]!=word[i])
      return 0;
  return 1;
}

int main()
{
  char *ep, flag;
  long i, f;
  long long n;
  string s;
  init();
  for(i=0; i<1000000; ++i)
    num[i].num=-1;
  while(1)
  {
    getQuery(input);
    if(input[0] == 'A')
    {
      s=&input[4];
      dict.push_back(s);
    }
    if(input[0]=='N')
    {
      n=strtoll(&input[5], &ep, 10);
      for(flag=0, f=num[i=numi(n)].i; 1; ++f)
      {
        if(dict.size()==0)
        {
          answerQuery(".");
          break;
        }
        if(f>=dict.size())
          f=0;
        if(cmpp(num[i].pref, dict[f]))
        {
          answerQuery((char*)dict[f].c_str());
          num[i].i=f+1;
          break;
        }
        if(f==num[i].i&&flag)
        {
          answerQuery(".");
          break;
        }
        flag=1;
      }
    }
    if(input[0]=='F')
    {
      n=strtoll(&input[6], &ep, 10);
      s=&ep[1];
      for(flag=0,f=num[i=addnum(n, s)].i; 1; ++f)
      {
        if(dict.size()==0)
        {
          answerQuery(".");
          break;
        }
        if(f>=dict.size())
          f=0;
        if(cmpp(num[i].pref, dict[f]))
        {
          answerQuery((char*)dict[f].c_str());
          num[i].i=f+1;
          break;
        }
        if(f==num[i].i&&flag)
        {
          answerQuery(".");
          break;
        }
        flag=1;
      }
    }
  }
  return 0;
}
