#include using namespace std; #define int long long #define all(v) (v).begin(), (v).end() #define bit(mask, i) (((mask) >> (i)) & 1) #define debug(x) #x << " = " << x typedef long long ll; typedef long double ld; mt19937 rng(7405); int Rand(int l, int r){ // rng() trả về một số bất kì if (l > r) return r; return abs((int)rng() % (r - l + 1)) + l; } const int N = 300 + 5; int n, a[N], k; signed main() { ios::sync_with_stdio(false); cin.tie(0); // freopen("input.inp", "r", stdin); // freopen("output.out", "w", stdout); cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; } cin >> k; int ans = 0; for (int it = 1; it <= 6000; it++) { if (is_sorted(a + 1, a + n + 1)) { break; } for (int i = n - k; i >= 1; i--) { if (a[i] > a[i + Rand(1, (int)(n / k - 1)) * k]) { swap(a[i], a[i + k]); ans++; } } } if (!is_sorted(a + 1, a + n + 1)) { ans = -1; } cout << ans << '\n'; return 0; }