Першим завданням на іспиті з Структур даних і Алгоритмів був список із понять та другий список із визначень. Студенту потрібно було зіставити кожне поняття з його визначенням. На жаль, Джо, який написав програму на Visual BASIC в університеті і вважав, що знає Комп'ютерні науки, навіть не відвідував заняття і не читав підручник. Він просто вгадував відповідності. Нехай S(n, k) - це кількість способів, якими Джо може відповісти на запитання, зробивши щонайменше перших зіставлень невірними.
Напишіть програму, яка обчислить S(n, k).
Перший рядок містить кількість тестів (1 \le p \le 1000).
Кожен тест складається з одного рядка і містить три цілі числа. Перше число - номер тесту. Друге - кількість (1 \le n \le 17) понять, які будуть задіяні в запитанні. Третє число (0 \le k \le n) - кількість початкових відповідностей, які будуть невірними.
Для кожного тесту виведіть в окремому рядку номер тесту, пробіл, і значення S(n, k).
Приклад 1