숫자 교환

정수 N의 자릿수를 정확히 K번 교환해 앞자리가 0이 되지 않게 만들 수 있는 가장 큰 수를 구하고, 불가능하면 -1을 출력합니다.

보통5BFS완전 탐색문자열시뮬레이션아직 제출이 없습니다시간 제한2초메모리 제한128 MB

문제

0으로 시작하지 않는 정수 N이 주어진다. M을 N의 자릿수라고 하자. 다음 연산을 정확히 K번 수행한다.

왼쪽부터 세었을 때 1 <= i < j <= M인 두 위치 i와 j를 고른 뒤, 두 위치의 숫자를 서로 바꾼다. 바꾼 뒤의 수는 0으로 시작할 수 없다.

연산을 정확히 K번 수행한 뒤 만들 수 있는 수 중 최댓값을 구하라.

입력

첫째 줄에 정수 N과 K가 주어진다. N은 1,000,000 이하의 자연수이며 0으로 시작하지 않는다. K는 10 이하의 자연수이다.

출력

연산을 정확히 K번 수행한 뒤 만들 수 있는 가장 큰 수를 출력한다. 연산을 K번 모두 수행할 수 없다면 -1을 출력한다.