#include using namespace std; const int N=1011; char s[N]; int d[N],f[N]; int fa(int x){ return f[x]==x?x:f[x]=fa(f[x]); } int n,m; int g[N],h[N]; int work(){ cin>>n>>m; memset(d,0,sizeof d); memset(g,0,sizeof g); memset(h,0,sizeof h); for(int i=1;i<=n;++i) f[i]=i; int ans=0; for(int i=2;i<=n;++i){ cin>>s+1; for(int j=1;j2) return -1; for(int i=1;i<=n;++i)if(g[i]>2) return -1; int t=fa(m); if(g[t]==2&&d[m]%2==0)return -1; for(int i=1;i<=n;++i)if(g[i] == 2 && i!=t) return -1; return ans + tot * 2 -2 + 2*(d[m]==0); } int main() { #ifdef flukehn freopen("c.in","r",stdin); #endif ios::sync_with_stdio(0); int T; cin>>T; while(T--){ cout<