RT
#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){int f=1,x=0;char ch=getchar();while (ch<'0'||ch>'9'){if (ch=='-') f=-1; ch=getchar();}while (ch>='0'&&ch<='9') {x=x*10+ch-'0';ch=getchar();}return x*f;}
inline void write(int x){if (x<0){putchar('-');x=-x;}if(x>9) write(x/10);putchar(x%10+'0');}
inline void Write(int x){write(x);putchar('\n');}
const int N=10005,M=100005;
int n,m,trie[N][26],id,cnt[N],Trie[M][26],Id,Cnt[M];
void insert(string s){
int p=0;
for (int i=0;i<s.size();i++){
int x=s[i]-'a';
if (trie[p][x]==0)trie[p][x]=(++id);
p=trie[p][x];
}
cnt[p]++;return;
}
int find(string s){
int p=0;
for (int i=0;i<s.size();i++){
int x=s[i]-'a';
if (trie[p][x]==0)return 0;
p=trie[p][x];
}
return cnt[p];
}
void Insert(string s){
int p=0;
for (int i=0;i<s.size();i++){
int x=s[i]-'a';
if (Trie[p][x]==0)Trie[p][x]=(++Id);
p=Trie[p][x];
}
Cnt[p]++;return;
}
int Find(string s){
int p=0;
for (int i=0;i<s.size();i++){
int x=s[i]-'a';
if (Trie[p][x]==0)return 0;
p=Trie[p][x];
}
return Cnt[p];
}
signed main(){
n=read();
for (int i=1;i<=n;i++){
string s;cin>>s;
insert(s);
}
m=read();
for (int i=1;i<=m;i++){
string s;cin>>s;
int val=find(s);
if (val==0)printf("WRONG\n");
else{
val=Find(s);
if (val==0)printf("OK\n");
else printf("REPEAT\n");
Insert(s);
}
}
return 0;
}
求助大佬!