Олимпиадный тренинг

Задача . D. Последовательность и обмены


Вам задана последовательность \(a\), состоящая из \(n\) целых чисел \(a_1, a_2, \dots, a_n\), а также целое число \(x\). Ваша задача заключается в том, чтобы сделать последовательность \(a\) отсортированной (последовательность отсортирована, если выполняется условие \(a_1 \le a_2 \le a_3 \le \dots \le a_n\)).

Чтобы отсортировать последовательность, вы можете выполнять следующую операцию любое количество раз (возможно, ноль): выбрать целое число \(i\) такое, что \(1 \le i \le n\) и \(a_i > x\), поменять местами значения \(a_i\) и \(x\).

Например, если \(a = [0, 2, 3, 5, 4]\), \(x = 1\), возможна следующая последовательность операций:

  1. выбрать \(i = 2\) (это возможно, так как \(a_2 > x\)), получим \(a = [0, 1, 3, 5, 4]\), \(x = 2\);
  2. выбрать \(i = 3\) (это возможно, так как \(a_3 > x\)), получим \(a = [0, 1, 2, 5, 4]\), \(x = 3\);
  3. выбрать \(i = 4\) (это возможно, так как \(a_4 > x\)), получим \(a = [0, 1, 2, 3, 4]\), \(x = 5\).

Вычислите минимальное количество операций, которые необходимо выполнить, чтобы \(a\) стала отсортированной, или сообщите, что это невозможно.

Входные данные

Первая строка содержит одно целое число \(t\) (\(1 \le t \le 500\)) — количество наборов входных данных.

Каждый набор входных данных состоит из двух строк. Первая строка содержит два целых числа \(n\) и \(x\) (\(1 \le n \le 500\), \(0 \le x \le 500\)) — количество элементов в последовательности и начальное значение \(x\).

Вторая строка содержит \(n\) целых чисел \(a_1\), \(a_2\), ..., \(a_n\) (\(0 \le a_i \le 500\)).

Сумма значений \(n\) по всем наборам входных данных не превосходит \(500\).

Выходные данные

Для каждого набора входных данных выведите одно целое число — минимальное количество операций, которые необходимо выполнить, чтобы сделать \(a\) отсортированной, или \(-1\), если это невозможно.


Примеры
Входные данныеВыходные данные
1 6
4 1
2 3 5 4
5 6
1 1 3 4 4
1 10
2
2 10
11 9
2 10
12 11
5 18
81 324 218 413 324
3
0
0
-1
1
3

time 1500 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя