#include #include #include #include #include using namespace std; typedef long long lint; typedef vectorvi; typedef pairpii; #define rep(i,n)for(int i=0;i<(int)(n);++i) const int K=500; int l[K]; const int N=60; string a[N]; int b[N][N]; int calc_score(const vector&ans){ int c[N][N]; rep(i,N)rep(j,N)c[i][j]=b[i][j]; rep(i,ans.size()){ if(ans[i].second<0){ assert(ans[i].first+l[i]-1<=N); rep(j,l[i]) c[ans[i].first+j-1][-ans[i].second-1]^=1; } else{ assert(ans[i].second+l[i]-1<=N); rep(j,l[i]) c[ans[i].first-1][ans[i].second+j-1]^=1; } } int t=0; rep(i,N)rep(j,N)t+=1-c[i][j]; return t; } void output(const vector&ans){ int orig=calc_score(vector()); rep(i,ans.size()){ if(ans[i].second<0) cout<