#include #include #include using namespace std; int main(){ int n, m; cin >> n >> m; vector a(n*m), c(n*m); for(int i = 0; i < n*m; i++){ cin >> a[i] >> c[i]; a[i]--; c[i]--; } vector> t(n, vector(m)); for(int i = 0; i < n*m; i++){ t[a[i]][c[i]] = i; } int ans = 1 << 30; for(int i = 0; i+3 < n; i++){ for(int j = 0; j < m; j++){ vector tm; for(int k = 0; k < 5; k++){ tm.emplace_back(t[(i+k)%n][j]); } sort(tm.begin(), tm.end()); int res = 0; for(int k = 0, l = 5; k < 5; k++){ if(tm[k] < l) continue; int x = (tm[k]+(5-k)-l)/(5-k); res += x; l += x*(5-k); } ans = min(ans, res); } } cout << ans << endl; return 0; }