TTT

  • Составление расписания тестирования
      TTT

Описание
Известно, что некоторые программисты любят откладывать тестирование на последние дни работы над программой, и это может приводить к ошибкам. Для некоторой фирмы "KROK" такая привычка работников стала настоящим бедствием. В результате было принято решение, чтобы каждый программист занимался тестированием не только своей, но и чужих программ. После переписи работников выяснилось, что в фирме работает N программистов (N - простое число от 7 до 97 включительно). Выяснилось также, что каждый программист пишет, сопровождает и отвечает за ровно одну программу. Для тестирования было приготовлено N тестов, подходящих для любой программы.

Стремясь к разнообразию и повышению эффективности, руководство фирмы постановило также, что:

  • каждый программист должен провести ровно N тестов, при этом каждая программа должна быть протестирована им ровно один раз; кроме того, каждый тест должен быть использован каждым программистом ровно один раз

  • каждая программа должна пройти каждый из тестов ровно один раз

Задача
Столь сложный подход, естественно, потребовал составления расписания тестирования. Но так как все программисты уже заняты, фирма обратилась к Вам. 

Тестирование проводится за N дней. Для каждого дня, для каждого программиста следует указать упорядоченную двойку, состоящую из номера программы и номера теста. При составлении расписания следует учитывать, что каждый программист тестирует каждый день только одну программу. В один день разными программистами не могут использоваться одинаковые тесты или тестироваться одинаковые программы. Все программисты каждый день должны быть заняты.


Формат входных данных
Считайте из входного файла TTT.DAT единственное число N

Формат выходных данных
Выведите в выходной файл TTT.SOL требуемое расписание тестов. Все программисты (а также программы, тесты и дни) пронумерованы от 1 до N



Например:

Day 1Day 2Day 3Day 4Day 5Day 6Day 7

Prog 1: 2 7
Prog 2: 1 3
Prog 3: 6 2
Prog 4: 7 6
Prog 5: 3 4
Prog 6: 5 5
Prog 7: 4 1

Prog 1: 4 5
Prog 2: 3 1
Prog 3: 1 7
Prog 4: 2 4
Prog 5: 5 2
Prog 6: 7 3
Prog 7: 6 6

Prog 1: 3 6
Prog 2: 2 2
Prog 3: 7 1
Prog 4: 1 5
Prog 5: 4 3
Prog 6: 6 4
Prog 7: 5 7

Prog 1: 5 4
Prog 2: 4 7
Prog 3: 2 6
Prog 4: 3 3
Prog 5: 6 1
Prog 6: 1 2
Prog 7: 7 5

Prog 1: 7 2
Prog 2: 6 5
Prog 3: 4 4
Prog 4: 5 1
Prog 5: 1 6
Prog 6: 3 7
Prog 7: 2 3

Prog 1: 1 1
Prog 2: 7 4
Prog 3: 5 3
Prog 4: 6 7
Prog 5: 2 5
Prog 6: 4 6
Prog 7: 3 2

Prog 1: 6 3
Prog 2: 5 6
Prog 3: 3 5
Prog 4: 4 2
Prog 5: 7 7
Prog 6: 2 1
Prog 7: 1 4