#include<stdio.h> #include<stdlib.h> #include<string.h> #include <math.h> double count=0; void swap(int x[ ], int i, int j) { int temp; temp = x[i]; x[i] = x[j]; x[j] = temp; } int main(){ int i=0,N,ary[200000],cp[200000],ans,flag=0; double K,z; scanf("%d",&N); scanf("%lf",&K); for(i=0;i<N;i++){ scanf("%d",&ary[i]); } i=0; while(i<N){ if(ary[i]!=i+1){ swap(ary,i,ary[i]-1); count++; }else i++; } z=fmod((double)(K-count),2.0); if(count<=K){ if(z==0) flag=1; else if(z==1) flag=0; }else{ flag =2; } if(flag==0) printf("NO\n"); else if(flag==1) printf("YES\n"); else if(flag==2) printf("NO\n"); return 0; }