#include using namespace std; fstream cinn,conn; int n,m,k,mask[20],a,b; char s; int dp[20][1<<16]; bool li[20][1<<16]; vector< pair > v[20]; int ff(int x,int m){ if(x==n)return 0; if(li[x][m])return dp[x][m]; li[x][m]=true; dp[x][m]=k; for(int i=0;i0){ dp[x][m]=min(dp[x][m],ff(x,m|(1<>n>>m>>k; for(int i=1;i<=n;i++){ for(int f=1;f<=k;f++){ cinn>>s; mask[i]*=2; mask[i]+=s-'0'; } } for(int i=1;i<=m;i++){ cinn>>a>>b; int res=0; for(int f=1;f<=k;f++){ cinn>>s; res*=2; res+=s-'0'; } v[a].push_back({b,res}); v[b].push_back({a,res}); } conn<