В исследовательском центре компании Q разработали новый многоядерный процессор. Процессор состоит из n ядер, в распоряжении которых имеется k ячеек общей кеш-памяти. Рассмотрим работу этого процессора.
Каждый такт каждому ядру процессора подается одна инструкция: либо ничего не делать, либо номер ячейки, в которую нужно записать информацию. Получив команду, ядро мгновенно выполняет ее. Иногда происходит ситуация, когда в течение одного и того же такта несколько ядер пытаются записать информацию в одну ячейку. К сожалению, разработчики не предусмотрели возможность разрешения конфликтов между ядрами, поэтому в таком случае происходит дедлок: все эти ядра и соответствующая ячейка памяти блокируются навсегда. Каждое из заблокированных ядер игнорирует все дальнейшие команды, и ни одно ядро в дальнейшем не сможет записать информацию в заблокированную ячейку. Если какое-то из ядер попытается записать информацию в заблокированную ячейку, оно немедленно блокируется.
Команда разработчиков процессора хочет досконально изучить ситуацию дедлок. Поэтому им требуется программа, которая по заданному набору инструкций для каждого ядра в течении m тактов будет моделировать работу процессора. Вам повезло, и эту интересную работу доверили вам. По заданным инструкциям в течении m тактов определите для каждого ядра номер такта, во время которого оно станет заблокированным. Считается, что изначально все ядра и все ячейки памяти не заблокированы.
В первой строке записаны три целых числа n, m, k (1 ≤ n, m, k ≤ 100). Далее идут n строк, описывающих инструкции. В i-й строке содержится m целых чисел: xi1, xi2, ..., xim (0 ≤ xij ≤ k), где xij обозначает инструкцию, которую должно выполнить i-е ядро на j-м такте. Если xij равно 0, то соответствующая инструкция «ничего не делать». Если же xij число от 1 до k, то соответствующая инструкция «записать информацию в ячейку кеш-памяти с номером xij».
Считается, что ядра пронумерованы от 1 до n, такты работы пронумерованы от 1 до m, а ячейки памяти пронумерованы от 1 до k.
Выведите n строк. В i-й строке выведите целое число ti, равное 0, если i-е ядро не будет заблокировано, либо равное номеру такта, в течение которого ядро будет заблокировано.
4 3 5
1 0 0
1 0 2
2 3 1
3 2 0
1
1
3
0
3 2 2
1 2
1 2
2 2
1
1
0
1 1 1
0
0
Название |
---|