#include //#include using namespace std; //using namespace atcoder; using ll = long long; //using mint = modint998244353; int main(){ cin.tie(nullptr); ios_base::sync_with_stdio(false); /* ロイヤルストレートフラッシュはO(N*M)通り 1枚目を手に入れるまでは5枚 .. 5枚目を手に入れるまでは1枚ずつ捨てる。 */ int N, M, n, m, K, ans=1e9, sm, p, x; cin >> N >> M; K = N*M; vector v(N, vector(M)); for (int i=0; i> n >> m; n--; m--; v[n][m] = i; } for (int i=0; i w; for (int k=0; k<=4; k++){ w.push_back(v[(j+k)%N][i]); } sort(w.begin(), w.end()); p=0; sm=0; x=0; for (int i=0; i<5; i++){ x += w[i]-p; p = w[i]+1; sm += x / (5-i); x %= (5-i); } ans = min(ans, sm); } } cout << ans << endl; return 0; }