CF BUDDY
← Problems·

1867D · Cyclic Operations

1800 · brute force, constructive algorithms, dfs and similar

Problem: Egor has an array aa of length nn, initially consisting of zeros. However, he wanted to turn it into another array bb of length nn.

Since Egor doesn't take easy paths, only the following operation can be used (possibly zero or several times):

  • choose an array ll of length kk (1lin1 \leq l_i \leq n, all lil_i are distinct) and change each element alia_{l_i} to l(i%k)+1l_{(i\%k)+1} (1ik1 \leq i \leq k).

He became interested in whether it is possible to get the array bb using only these operations. Since Egor is still a beginner programmer, he asked you to help him solve this problem.

The operation %\% means taking the remainder, that is, a%ba\%b is equal to the remainder of dividing the number aa by the number bb.

Input Format: The first line of the input contains an integer tt (1t1051 \leq t \leq 10^5) - the number of test cases.

Each test case consists of two lines. The first line contains two integers nn and kk (1kn1051 \leq k \leq n \leq 10^5).

The second line contains the array b1,b2,,bnb_1, b_2, \ldots, b_n (1bin1 \leq b_i \leq n).

It is guaranteed that the sum of nn over all test cases does not exceed 21052 \cdot 10^5.

Output Format: For each test case, output "YES" (without quotes) if there is a way to get the array bb using only the given operation. Otherwise, output "NO" (without quotes). You can output each letter in any case (lowercase or uppercase). For example, the strings "yEs", "yes", "Yes" and "YES" will be accepted as a positive answer.

Note: Let's consider the first example:

  • Apply the operation with ll = [1,2,3][1,2,3]. Now aa = [2,3,1,0,0][2,3,1,0,0].
  • Apply the operation with ll = [3,5,4][3,5,4]. Now aa = [2,3,5,3,4][2,3,5,3,4] = bb.

In the second example, it can be proven that the array bb cannot be obtained, therefore the answer is NO.

Sample Cases

Case 1

Input

6
5 3
2 3 5 3 4
4 2
2 4 3 1
1 1
1
3 1
1 2 3
5 3
5 4 3 2 1
6 1
1 2 3 1 5 6

Output

YES
NO
YES
YES
NO
NO

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback