問題
1, 2, ... , n으로 이루어진 순열이 주어지고, 순열 내에서 k개의 연속된 숫자들을 뒤집는 과정을 반복하여 최소 횟수로 오름차순으로 정렬하는 것을 목표로 하는 게임을 정렬 게임이라고 한다. 초기의 순열과 k값이 주어졌을 때, 정렬을 위해서 최소 몇 번의 뒤집기 과정이 필요한지 알아보는 프로그램을 작성하라.
入力
입력은 여러개의 테스트 케이스로 이뤄지며, 테스트 케이스는 한 줄로 이뤄진다. 테스트 케이스의 처음에는 순열의 개수 N이 주어지며 이는 1 이상 8 이하이다. 그 다음에는 1이상 N으로 이루어진 임의의 순열이 주어진다. 순열내에서 중복되는 원소는 없다.
마지막으로 연속해서 뒤집을 수 있는 원소의 개수인 k가 입력되며, 이는 N이하의 숫자이다. 마지막 줄에 0 0 이 입력될 경우 프로그램을 종료한다.
테스트 케이스는 최대 200개가 들어올 수 있다
出力
테스트 케이스의 순서대로 정렬 게임에서 필요한 최소한의 뒤집기 횟수를 한줄에 하나씩 출력한다. 만약 불가능할 경우 -1을 출력한다.
例題
3 1 2 3 3
3 3 2 1 3
5 5 4 3 2 1 2
5 3 2 4 1 5 4
8 7 2 1 6 8 4 3 5 4
0 0
0
1
10
-1
7