#include using namespace std; #define rep(i,a,b) for(ll i=a;i=b;i--) #define ll long long #define ull unsigned ll #define ld long double #define bl __int128_t #define fi first #define se second #define vel vector #define vvel vector #define pll pair #define vepll vector #define vvepll vector #define ves vector #define vem vector #define vvem vector #define pmm pair #define cleout(i) cout<using PQ=priority_queue,greater>; // 上 右 下 左 vector di={-1, 0, 1, 0}; vector dj={ 0, 1, 0,-1}; vector dx={ 0, 1, 0,-1}; vector dy={ 1, 0,-1, 0}; vector ddx={ 1, 1, 1, 0, -1, -1, -1, 0 }; vector ddy={ 1, 0, -1, -1, -1, 0, 1, 1 }; ll inf=1000000000000000000;//1e18 // LLONG_MAX void _solve(){ ll N,M; cin>>N>>M; vector a(N,ves(M)); rep(i,0,N){ rep(j,0,M){ cin>>a[i][j]; } } ll ans=inf; rep(i,0,(1ll<<(2*N))){ vvel b(M,vel(M)); ll bit=i; auto f=[&](ves &X,ll cnt){ ves x=X; ves res=x; rep(j,0,cnt){ rep(k,0,M){ rep(l,0,M){ res[l][M-1-k]=x[k][l]; } } x=res; } rep(j,0,M){ rep(k,0,M){ if(res[j][k]=='#')b[j][k]=1; } } }; rep(j,0,N){ f(a[j],bit%4); bit/=4; } ll sum=0; rep(j,0,M){ rep(k,0,M){ if(b[j][k])sum++; } } ans=min(ans,sum); } cout<>_; else _=1; rep(__,0,_){ _solve(); } }