#include using namespace std; vector>a[20]; bool reach[20][(1<<15)+1]; void solve() { int n,m,k;cin>>n>>m>>k; int mask[n+1]; for(int i=0;i>ss; int maskk=0; for(int j=ss.size()-1;j>=0;j--) { maskk*=2; maskk+=ss[j]-'0'; } mask[i+1]=maskk; } for(int i=0;i>x>>y; string ss;cin>>ss; int maskk=0; for(int j=ss.size()-1;j>=0;j--) { maskk*=2; maskk+=ss[j]-'0'; } a[x].push_back({y, maskk}); a[y].push_back({x, maskk}); } queue>q; q.push({1, 0}); reach[1][0]=1; while(q.size()>0) { int num=q.front().first; int ma=q.front().second; q.pop(); for(int i=0;i