#include #include #include #include using namespace std; bool solve() { int N, K; if (!(cin >> N >> K)) return false; vector A(N); vector S(N); for (int i = 0; i < N; ++i) { cin >> A[i]; S[i] = A[i]; } // 理想の並び(昇順)を作成 sort(S.begin(), S.end()); // 各グループ (余り 0 ~ K-1) ごとに要素を抽出して比較 for (int r = 0; r < K; ++r) { vector groupA, groupS; for (int i = r; i < N; i += K) { groupA.push_back(A[i]); groupS.push_back(S[i]); } // グループ内の数字をソートして比較 sort(groupA.begin(), groupA.end()); sort(groupS.begin(), groupS.end()); if (groupA != groupS) { return false; // 構成要素が違うので並び替え不可 } } return true; } int main() { if (solve()) { cout << "Yes" << endl; } else { cout << "No" << endl; } return 0; }