#include <bits/stdc++.h>
using namespace std;
#define append push_back
#define int long long
const int N=3e6+10,LG=21;
int mod=1e9+7;
void solve(int tst){
int n,k;
cin>>n>>k;
map<string,bool>fa,fb;
string a,b;
map<string,bool>bad;
cin>>a>>b;
while(k--){
string s;
cin>>s;
bad[s]=1;
}
deque<string>x,y;
fa[a]=fb[b]=1;
x={a};y={b};
while(x.size() or y.size()){
if(x.size()){
string s=x.front();
x.pop_front();
string t=s;
for(int j=0;j<n;j++){
t[j]='1'-s[j]+'0';
if(bad.find(t)==bad.end() and fa.find(t)==fa.end()) {
x.append(t),fa[t]=1;
if(fb.find(t)!=fb.end()) {
cout<<"TAK"<<endl;return;
}
}
t[j]=s[j];
}
}
if(y.size()){
string s=y.front();
y.pop_front();
string t=s;
for(int j=0;j<n;j++){
t[j]='1'-s[j]+'0';
if(bad.find(t)==bad.end() and fb.find(t)==fb.end()) {
y.append(t),fb[t]=1;
if(fa.find(t)!=fa.end()){
cout<<"TAK"<<endl;return;
}
}
t[j]=s[j];
}
}
}
cout<<"NIE"<<endl;
}
signed main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t = 1;
// cin >> t;
for(int i=1;i<=t;i++){
solve(i);
// if(i!=t) cout<<endl;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |