모든 수가 1 이상 K 이하의 수로 구성된 수열이 있다. 이 수열에 다른 연속한 부분수열을 삽입하거나 삭제하는 연산을 원하는 만큼 할 수 있다. 단, 이 수열은 길이가 M 이상이어야 하며, 수열의 각 수 또한 1 이상 K 이하의 정수여야 한다.
연산 전의 수열이 A_0,A_1,⋯,A_L−1인 길이 L의 수열이라고 하자. 각 연산은 다음과 같이 표현할 수 있고, 등장하는 모든 수는 정수이다.
+ P N,B_0 B_1 ⋯ B_N−1
− P N
예를 들어, K=9,M=2일 때, 수열 3,2,7,8,9,1,4에 연산 +,7,3 1,5,9를 적용하면 수열이 3,2,7,8,9,1,4,1,5,9가 되고, 여기에 추가적으로 연산 − 1 4를 적용하면 수열이 3,1,4,1,5,9가 된다.
K와 M, 그리고 두 수열 C, D가 주어졌을 때, 수열 C에서 연산을 원하는 만큼 반복해서 적용해서 수열 D를 만들 수 있는지를 구하고, 만들 수 있다면 해당 방법을 출력하여라.
입력은 다음과 같은 형태로 주어진다.
K M
∣C∣
C_0 C_1 ⋯ C_∣C∣−1
∣D∣
D_0 D_1 ⋯ D_∣D∣−1
수열 C에서 연산을 원하는 만큼 반복해서 적용해서 수열 D를 만들 수 없다면 NO를 출력한다. 그렇지 않은 경우 다음과 같은 방법으로 출력한다.
YES
V
op_1
op_2
⋮
op_V
여기서 V는 연산을 사용하는 횟수이며, i 번째 연산은 op_i로 표현되었다. 문제에서 주어진 연산을 문제에서 주어진 조건에 맞게 출력해야 한다.
입력 및 출력에서 사용되는 모든 수는 정수이다.
입력 제한
출력 제한
채점기는 공백의 종류나 개수에 민감하지 않지만, 너무 많은 공백을 출력한 경우 오답을 받을 수 있다.