내비라크의 완전한 수열
시간 제한1초메모리 제한1024 MB
1부터 K까지의 값으로 이루어진 수열이 주어질 때, 모든 값이 같은 횟수씩 나타나도록 만드는 단 하나의 추가, 삭제, 교체 연산을 찾는다.
문제
내비라크는 쉽게 싫증을 내는 젊은 선원이다. 정수 수열을 좋아하고, 수열을 분류하는 방법을 만드는 것도 좋아한다. 내비라크는 정수 를 하나 정해 두고, 수열이 이상 이하의 정수만 담고 있으면서 부터 까지의 정수가 모두 같은 횟수만큼 나타나면 그 수열을 완전하다고 부른다. 원소가 하나도 없는 수열도 모든 정수가 번씩 나타나므로 완전하다.
바다가 잔잔해 할 일이 없을 때를 위해 내비라크는 동료와 함께 즐길 놀이를 하나 만들었다. 먼저 양의 정수 를 고르고, 분필로 갑판에 이상 이하의 정수 개로 이루어진 수열 를 적는다. 그다음 동료 한 명에게 도전한다. 도전을 받은 동료는 아래 세 연산 중 정확히 하나를 수행해서 를 완전한 수열로 만들어야 한다.
-x: 에서 정수 가 나타나는 자리 하나를 지운다.+x: 값이 인 정수를 에 새로 넣는다.-x +y: 에서 정수 가 나타나는 자리 하나를 값이 인 정수로 바꾼다.
내비라크는 머리가 좋다. 이미 완전한 수열은 절대 적지 않고, 적는 정수에 규칙이 없을 때가 많아서 퍼즐을 푸는 연산을 찾기가 꽤 어렵다. 내비라크와 자주 항해하는 친구는 이 놀이에서 매번 지는 데 지쳤다. 다음 항해를 떠나기 전에, 놀이의 답을 찾아 주는 프로그램을 만들어 친구를 도와주자.
입력
첫째 줄에 두 정수 와 이 주어진다 (, ). 는 내비라크가 놀이를 시작할 때 고른 정수이고, 은 갑판에 적은 수열의 길이다. 둘째 줄에 갑판에 적힌 수열을 나타내는 정수 개 이 주어진다 (). 주어지는 수열은 완전하지 않다.
출력
친구가 놀이에서 이길 수 있는 연산을 한 줄에 출력한다. 이기는 방법이 없으면 별표 * 하나를 출력한다. 연산은 문제에 나온 형식, 즉 -x, +x, -x +y 중 하나로 적어야 한다. 이기는 연산이 있으면 그 연산은 유일하다.