#include #include typedef long long int ln; void swap(int *array,int i,int j){ int t=array[i]; array[i]=array[j]; array[j]=t; return; } void run(void){ int n; ln k; scanf("%d%lld",&n,&k); if(n-1<=k){ printf("YES\n"); return; } int *d=(int *)malloc(sizeof(int)*(n+1)); int i; for(i=1;i<=n;i++){ scanf("%d",d+i); } int count=0; for(i=1;i<=n;i++){ while(d[i]!=i){ swap(d,i,d[i]); count++; } } printf("%s\n",count<=k?"YES":"NO"); free(d); return; } int main(void){ run(); return 0; }