#include "bits/stdc++.h" #define _CRT_SECURE_NO_WARNINGS #define rep(i,n) for(int i = 0;i < n;i++) #define REP(i,n,k) for(int i = n;i < k;i++) #define P(p) cout << (p) << endl; #define sP(p) cout << setprecision(15) << fixed << p << endl; #define Pi pair #define IINF 1e9 #define LINF 1e18 #define vi vector #define mp(a,b) make_pair(a,b) using namespace std; typedef long long ll; typedef unsigned long long ull; int dx[] = { 1, -1 , 0 , 0}; int dy[] = { 0, 0, 1, -1}; unsigned long long str_to_int(std::string str) { unsigned long long ret; std::stringstream ss; ss << str; ss >> ret; return ret; } bool isPrime(int n) { if (n <= 1)return false; if (n == 2)return true; if (n % 2 == 0)return false; for (int i = 3; i*i <= n; i += 2) { if (n%i == 0)return false; } return true; } void solve() { int n; ll k; cin >> n >> k; vi v; rep(i, n) { int a; cin >> a; a--; v.push_back(a); } int count = 0; rep(i, n) { while (i != v[i]) { swap(v[i], v[v[i]]); count++; } } if (k >= count and k % 2 == count % 2) { P("YES"); } else { P("NO"); } } int main() { solve(); return 0; }