선형적으로 생각할 수만 있다면...

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

알고리즘을 오래 붙잡아 본 사람이라면 안다. 입력 벡터 xx와 출력 벡터 yy를 가진 선형 시스템은 행렬 MM 하나로 나타낼 수 있다. MMjj번째 열에는 jj번 입력만 1이고 나머지 입력이 모두 0일 때 나오는 출력값이 들어 있다. 시스템이 선형이므로 임의의 입력 조합에 대한 출력은 MM의 열을 선형결합해서 얻는다.

y=Mxy = Mx

행렬 MM과 출력 벡터 yy가 주어진다. 이 출력을 만들어내는 입력 xx를 구하라. MMm×nm \times n 행렬, yy는 크기가 mm인 열벡터이고, 구해야 하는 xx는 크기가 nn인 열벡터로 0이 아닌 성분이 정확히 세 개다. m=3m = 3, n=4n = 4인 경우를 풀어 쓰면 다음 식을 만족하는 xx를 찾는 문제다.

[y1y2y3]=[m11m12m13m14m21m22m23m24m31m32m33m34][x1x2x3x4]\begin{bmatrix} y_1 \\ y_2 \\ y_3 \end{bmatrix} = \begin{bmatrix} m_{11} & m_{12} & m_{13} & m_{14} \\ m_{21} & m_{22} & m_{23} & m_{24} \\ m_{31} & m_{32} & m_{33} & m_{34} \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \\ x_4 \end{bmatrix}

입력의 개수 nn이 출력의 개수 mm보다 큰 경우도 다뤄야 한다. 이때 MM은 미결정 시스템이라 같은 yy를 만드는 xx가 여럿 존재하지만, 0이 아닌 성분이 정확히 세 개인 xx는 하나뿐이다.

입력

첫째 줄에 행렬 MM의 행 개수 mm이, 둘째 줄에 열 개수 nn이 주어진다. 이어지는 mm개의 줄에는 MM의 각 행이 공백으로 구분된 실수 nn개로 주어진다. 그다음 mm개의 줄에는 출력 벡터 yy의 성분이 한 줄에 하나씩 주어진다.

3m303 \le m \le 30, 3n303 \le n \le 30이고, 조건을 만족하는 xx는 항상 유일하게 존재한다. 입력 하나에는 테스트 케이스가 하나만 들어 있다.

출력

0이 아닌 세 성분의 번호를 오름차순으로, 한 줄에 하나씩 다음 형식으로 출력한다.

input i = v

ii는 1 이상 nn 이하의 정수이고, vv는 그 입력의 값을 소수점 아래 셋째 자리에서 반올림해 소수점 아래 둘째 자리까지 적은 값이다. 반올림 방향이 흔들릴 만큼 경계에 가까운 값은 정답에 나오지 않는다.

힌트

정답 xxMM에 곱하면 yy의 각 성분이 상대오차 0.01% 안에서 복원된다. 0이 아닌 성분의 위치로 가능한 후보는 (n3)\binom{n}{3}가지뿐이므로, 후보마다 그 세 열로 최소제곱해를 구한 다음 잔차가 0에 가까운 후보를 고르면 된다. 세 번호는 정답과 정확히 일치해야 한다.