가장 개성 있는 캐릭터

길이 k인 비트 문자열을 골라 주어진 n개 문자열과의 최대 일치 비트 수를 최소로 만들고, 동률이면 사전순으로 가장 앞선 것을 출력한다.

보통7비트 연산동적 계획법BFS아직 제출이 없습니다시간 제한4초메모리 제한512 MB

문제

티라는 다른 플레이어 nn명과 함께 멀티플레이어 게임을 하려고 한다. 플레이어는 저마다 캐릭터를 하나씩 쓰고, 캐릭터는 특성을 몇 가지 지닌다. 게임에 있는 특성은 모두 kk가지이며, 각 캐릭터는 그중 일부를 지닌다.

두 캐릭터 AABB의 유사도는 이렇게 센다. 각 특성 ff마다 AABB가 둘 다 ff를 지니거나 둘 다 지니지 않으면 유사도가 11 늘어난다.

티라에게는 아직 캐릭터가 없다. 티라는 자기 캐릭터와 다른 캐릭터 사이의 유사도 중 최댓값이 가장 작아지도록 새 캐릭터를 만들려고 한다.

다른 플레이어의 캐릭터가 주어질 때 이 조건을 만족하는 티라의 캐릭터를 구하여라. 조건을 만족하는 캐릭터가 여럿이면 그중 사전순으로 가장 앞서는 하나를 답으로 삼는다.

입력

첫째 줄에 정수 nnkk가 공백으로 구분되어 주어진다. nn은 티라를 뺀 플레이어 수로 1n1051 \le n \le 10^5이고, kk는 특성의 개수로 1k201 \le k \le 20이다.

다음 nn개 줄에는 이미 있는 캐릭터가 한 줄에 하나씩 주어진다. 각 줄은 00 또는 11로만 이루어진 길이 kk의 문자열이다. jj번째 자리가 11이면 그 캐릭터가 jj번째 특성을 지닌다는 뜻이고, 00이면 지니지 않는다는 뜻이다. 같은 캐릭터가 여러 번 나올 수 있다.

출력

티라의 캐릭터를 입력과 같은 형식으로 한 줄에 출력한다. 유사도의 최댓값을 가장 작게 만드는 캐릭터가 여럿이면 그중 사전순으로 가장 앞서는 문자열 하나만 출력한다. 길이가 kk로 같은 두 문자열은 왼쪽 자리부터 차례로 비교하고, 자리마다 0011보다 앞선다.