#include using namespace std; typedef long long ll; #define rep(i, n) for(int i = 0; i < (n); i++) #define rep1(i, n) for(int i = 1; i < (n); i++) template istream& operator >> (istream& s, vector& v) { for (T& x: v) { s >> x; } return s;} int main() { cin.tie(0);ios::sync_with_stdio(false); ll N, K; cin >> N >> K; vector D(N); unordered_map m; rep(i, N) { cin >> D[i]; D[i]--; m[D[i]] = i; } int c = 0; rep(i, N) { if (D[i] != i) { D[m[i]] = D[i]; m[D[i]] = m[i]; D[i] = i; c++; } } bool ok = (c <= K && (c&1) == (K&1)); cout << (ok ? "YES" : "NO") << endl; }