#include <iostream>
using namespace std;
int seen[(1<<22)], X, Y;
int get(int n, int inp = 0){
	while (n--){
		char c;
		cin>>c;
		inp = inp * 2 + c - '0';
	}
	return inp;
}
void dfs(int n, int x){
	if (x == Y){
		cout<<"TAK\n";
		exit(0);
	}
	if (seen[x])
		return;
	seen[x] = 1;
	for (int i=0;i<n;i++)
		dfs(n, x ^ (1<<i));
}
int main(){
	int n, k;
	cin>>n>>k;
	X = get(n), Y = get(n);
	for (int i=1;i<=k;i++)
		seen[get(n)] = 1;
	dfs(n, X);
	cout<<"NIE\n";
}
| # | 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... |