#include #include //#pragma GCC optimize("O2") using namespace std; using namespace atcoder; using ll = long long; using ull = unsigned long long; using vi = vector; using vll = vector; using vull = vector; using vs = vector; using vb = vector; using vc = vector; using vf = vector; using vd = vector; using vvi = vector>; using vvll = vector>; using vvull = vector>; using vvs = vector>; using vvc = vector>; using vvb = vector>; using vvf = vector>; using vvd = vector>; using pi = pair; using pll = pair; using vpi = vector; using vpll = vector; #define cYes cout << "YES\n" #define cNo cout << "NO\n" #define cyes cout << "Yes\n" #define cno cout << "No\n" #define fi first #define se second #define pb push_back #define eb emplace_back #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() template inline istream& operator >> (istream& is, vector& v){ for(size_t i=0; i> v[i]; } return is; } template inline istream& operator >> (istream& is, vector>& v){ for(size_t i=0; i> v[i].first >> v[i].second; } return is; } template inline istream& operator >> (istream& is, vector>& v){ for(size_t i=0; i> v[i][j]; } } return is; } template inline istream& operator >> (istream& is, vector, pair>>& v){ for(size_t i=0; i> v[i].first.first >> v[i].first.second >> v[i].second.first >> v[i].second.second; } return is; } const double PI = 3.14159265359; vi dx = {0, -1, 0, 1}; vi dy = {1, 0, -1, 0}; void rot90(vvc &G, ll &M){ vvc NG(M, vc(M)); for(int i=0; i> N >> M; vector S(N, vvc(M, vc(M))); for(int i=0; i> S[i]; } ll J = 1; for(int i=0; i= 1) cnt++; } } // cout << cnt << "\n"; ans = min(ans, cnt); } cout << ans << "\n"; }