#include #include #include #include #define rep(i, n) for (i = 0; i < n; i++) #define rrep(i, n) for (i = n; i >= 0; i--) #define max(a, b) (a > b ? a : b) #define min(a, b) (a < b ? a : b) void swap(int *a, int *b) { int t = *a; *a = *b; *b = t; } int main() { int n, k; scanf("%d %d", &n, &k); int d[200000], idx[200000], i; rep(i, n) { scanf("%d", &d[i]); idx[d[i] - 1] = i; } int cnt = 0; rep(i, n) { if (d[i] != i + 1) { swap(&d[i], &d[idx[i]]); cnt++; } } if (cnt <= k && (k - cnt) % 2 == 0) puts("YES"); else puts("NO"); return 0; }