%
% Летние всероссийские школьные учебно-тренировочные сборы по информатике
% Среда, 29 июня 2016 года
%
% Условие: Егор Щербин
% Тесты: Егор Щербин, Роман Андреев
% Грейдеры: Егор Щербин
% Решения: Егор Щербин, Павел Кунявский, Николай Будин
% Идея: Андрей Станкевич
%
\begin{problem}{Гири на чердаке}{\textsl{cтандартный ввод}}{\textsl{cтандартный вывод}}{4 секунды}{256 мегабайт}

Ваня и Миша копались в старых вещах на чердаке. Ваня нашёл набор из $n$ гирь и 
захотел узнать точные веса каждой из них. К сожалению, веса на гирях написаны не 
были, однако Ваня смог сравнить их на глаз и пронумеровать от $0$ до $n-1$ в
порядке возрастания веса.

По счастливой случайности, Миша наткнулся на справочник ``Стандарт качества
наборов из $n$ гирь'', в котором было написано, что наборы из $n$ гирь бывают
только $k$ различных данных вариантов, пронумерованных от $0$ до $k-1$. 
Используя эту информацию и старые 
чашечные весы, ребята решили понять, какой же из наборов попался им. Но так как
Миша с Ваней знают, что вы видели задачу про взвешивания с IOI 2015,
они попросили вас написать программу для решения их задачи.

А именно, требуется реализовать функцию
\begin{center}\t{int identify\_set(int~n,~int~k,~long~long~**sets)}\end{center}
Её параметры:
\begin{shortitems}
\item
    \t{n} "--- количество гирь.
\item
    \t{k} "--- количество возможных наборов.
\item
    \t{sets} "--- двумерный массив размера \t{k}$\times$\t{n}, где 
    \t{sets[i][j]} "--- вес \t{j}-й гири из \t{i}-го набора. 
\end{shortitems}
Она должна возвращать номер варианта набора, которым в действительности является
найденный Ваней набор, или $-1$, если однозначно набор определить нельзя.

При своей работе функция может использовать для взвешивания на чашечных весах 
функцию
\begin{center}\t{int compare(int~first,~int~second)}\end{center}
Её параметры:
\begin{shortitems}
\item
    \t{first} "--- битовая маска гирь, которые нужно положить на
    первую чашу весов. А именно, если и только если $i$-й бит числа \t{first}
    равен 1, то на первую чашу весов нужно положить $i$-ю гирю.
\item
    \t{second} "--- битовая маска гирь, которые нужно положить на
    вторую чашу весов. Необходимо, чтобы множества гирь не пересекались.
\end{shortitems}
Она возвращает $-1$, если суммарный вес гирь на первой чаше меньше суммарного 
веса гирь на второй, $0$, если чаши уравновешены, 
и $1$, если первая чаша тяжелее.

Так как весы старые, они могут сломаться в любой момент, поэтому для надёжности
вам разрешается использовать функцию \t{compare} не более $T$ раз. В противном
случае ваше решение получит вердикт \t{Wrong Answer}.

Гарантируется, что в каждом наборе веса гирь различные и упорядочены по 
возрастанию. Гарантируется, что найденный набор является одним из описанных в
справочнике.

{\bf При отправке используйте} \href{http://informatics.letovo.ru/d/weights_public_part.cpp}{заготовку кода}.

\Scoring

Пусть $W$ "--- вес самой тяжёлой гири из всех наборов в тесте.

\SubtaskWithScore{21} $n \le 12$, $k \le 14$, $W\le 10^9$, $T=540000$
\SubtaskWithScore{38} $n \le 18$, $k \le 26$, $W\le 10^9$, $T=k$
\SubtaskWithScore{30} $n \le 24$, $k = 2$, $W\le 10^9$, $T=k$
\SubtaskWithScore{11} $n \le 26$, $k \le 26$, $W\le 10^{15}$, $T=k$

\Example

\begin{example}
\exmp{
3 2 540000
0
1 2 4
1 3 4
}{
0
1
}%
\end{example}

\Note

Допустим, есть два варианта набора из трёх гирь: $(1,2,4)$ и $(1,3,4)$.
Можно положить на первую чашу весов первые две гири, а на
вторую чашу "--- оставшуюся третью гирю. Взвешивание показывает, что первая
чаша легче, но это выполняется только для набора $0$, поэтому ответ "--- $0$.

\vspace*{0.5em}
В этой задаче можно считерить. В оригинальном формате задачи код участника и функции \t{main}, \t{compare}
лежили в разных \t{cpp} файлах. На нашем ejudge задачи такого рода пока не настроены.
Пожалуйста, решайте честно \t{=)}

\end{problem}

