#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define pii pair #define mem(a,b) memset(a,b,sizeof(a)) #define lson l,mid,rt<<1 #define rson mid+1,r,rt<<1|1 #define PI acos(-1.0) typedef __int64 LL; typedef unsigned __int64 ULL; const int N=230; const int INF=0x3f3f3f3f; const LL MOD=1000000007,STA=8000010; const LL LNF=1LL<<55; const double EPS=1e-9; const double OO=1e30; const int dx[4]={-1,0,1,0}; const int dy[4]={0,1,0,-1}; const int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; inline int sign(double x){return (x>EPS)-(x<-EPS);} template T gcd(T a,T b){return b?gcd(b,a%b):a;} template T lcm(T a,T b){return a/gcd(a,b)*b;} template inline T lcm(T a,T b,T d){return a/d*b;} template inline T Min(T a,T b){return a inline T Max(T a,T b){return a>b?a:b;} template inline T Min(T a,T b,T c){return min(min(a, b),c);} template inline T Max(T a,T b,T c){return max(max(a, b),c);} template inline T Min(T a,T b,T c,T d){return min(min(a, b),min(c,d));} template inline T Max(T a,T b,T c,T d){return max(max(a, b),max(c,d));} int vis[20][20],cnt[20][20],e[20][20]; char g[20][20]; int n,m,tot,sx,sy; double A[N][N]; int gauss(int n) { int i,j,k,r; for(i=0;i fabs(A[r][i]))r=j; if(r!=i)for(j=0;j<=n;j++)swap(A[r][j],A[i][j]); for(j=n;j>=i;j--){ for(k=i+1;k=0;i--){ for(j=i+1;j q; q.push(sx*m+sy); mem(vis,-1);mem(cnt,0); vis[sx][sy]=tot=0; tot++; while(!q.empty()){ t=q.front();q.pop(); x=t/m;y=t%m; for(i=0;i<4;i++){ nx=x+dx[i]; ny=y+dy[i]; if(nx>=0&&nx=0&&ny=0&&x=0&&y