Problem

Given a permutation of length $ N $ $ P = \\ {P_1, P_2, \ ldots, P_N \\} $ and the integer $ K $.
Determine if the permutation $ P $ can be monotonically increased by repeating the following operation any number of times $ 0 $ or more.

* Choose the integer $ x \ (0 \ le x \ le N-K) $. Patrol right shift around $ P_ {x + 1}, \ ldots, P_ {x + K} $



However, the cyclic right shift of the subsequence $ U = U_1, \ ldots, U_M $ means that $ U = U_1, \ ldots, U_M $ is changed to $ U = U_M, U_1, \ ldots, U_ {M-1} $. Means to change.

Constraints

The input satisfies the following conditions.

* $ 2 \ leq K \ leq N \ leq 10 ^ 5 $
* $ 1 \ leq P_i \ leq N \ (1 \ leq i \ leq N) $
* $ P_i \ neq P_j \ (i \ neq j) $
* All inputs are integers

Input

The input is given in the following format.


$ N $ $ K $
$ P_1 $ $ \ ldots $ $ P_N $


Permutation length $ N $ and integer $ K $ are given in the first row, separated by blanks.
The elements of the permutation $ P $ are given in the second row, separated by blanks.

Output

Print "Yes" if you can monotonically increase $ P $, otherwise print "No" on the $ 1 $ line.

Examples

Input

3 3
2 3 1


Output

Yes


Input

3 2
1 2 3


Output

Yes


Input

3 3
3 2 1


Output

No
#include <bits/stdc++.h>
using namespace std;

#define dbg(x) cout<<#x<<"="<<x<<endl

using P=pair<int,int>;

int main(){
    int n,k;
    cin>>n>>k;
    if(k==2){
        cout<<"Yes"<<endl;
        return 0;
    }
    vector<int> p(n);
    for (int i = 0; i < n; ++i) {
        cin>>p[i];
        --p[i];
    }
    if(n==k){
        for (int i = 0; i < n-1; ++i) {
            if(p[i]!=n-1&&p[i]>p[i+1]){
                cout<<"No"<<endl;
                return 0;
            }
        }
        cout<<"Yes"<<endl;
        return 0;
    }

    vector<bool> vis(n,false);
    int ms=0;
    for (int i = 0; i < n; ++i) {
      if(vis[i])continue;
      int crt=i;
      int d=0;
      while(!vis[crt]){
        vis[crt]=true;
        d++;
        crt=p[crt];
      }
      d%=2;
      if(d==0)ms++;
    }
    ms%=2;

    if(k%2==1&&ms%2==1)cout<<"No"<<endl;
    else cout<<"Yes"<<endl;
    return 0;
}

