#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define loop(i,a,b) for(int i=a;i pii; typedef vector vi; typedef vector vvi; typedef vector vp; typedef vector vvp; typedef vector vs; typedef vector vd; typedef vector vvd; typedef pair pip; typedef vectorvip; const double PI=acos(-1); const double EPS=1e-7; const int inf=1e8; const ll INF=1e16; int dx[4]={0,1,0,-1}; int dy[4]={1,0,-1,0}; ll n,m,out; vi in,used; void f(int a,int b){ used[a]=true; if(used[in[a]])out+=b; else f(in[a],b+1); } int main(){ cin>>n>>m; in=vi(n); rep(i,n)cin>>in[i]; rep(i,n)in[i]--; used=vi(n); rep(i,n)if(!used[i]){ f(i,0); } if(out<=m&&(m-out)%2==0)cout<<"YES"<