페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#2088

선거 1s 64MB

문제

우리가 선거에서 주로 사용하는 형태의 투표는 한 표씩 피선거자에게 던짐으로써 그 표가 가장 많은 사람이 당선되는 형태를 따른다. 

그런데 특히 정치와 같은 경우, 정치적인 색채가 비슷한 인물이 여럿 등장하면 비슷한 표밭에서 표가 오기 때문에 표가 갈리는 현상을 보인다. 

따라서 오히려 객관적인 지지율이 낮은 사람이 당선될 가능성이 있다.

이와 같은 단점을 막기 위해 아래와 같은 투표를 생각하자.

     

  • 후보의 수를 N이라 하고 유권자의 수를 M이라 하자.
  •  

  • 선거권이 있는 각 유권자는 각 후보에 대한 선호도를 [1, N]의 순열로 나타낸다. 즉, 가장 선호하는 사람은 누구이고 그 다음으로 선호하는 사람은 누구이고 .. 와 같이 진행한다.
  •  

  • 당선자를 결정하기 위해 아래의 단계를 반복한다.

       

    • 과반 이상으로부터 선호도 1위인 후보가 있다면 그 후보가 당선이다.
    •  

    • 당선이 결정되지 않았으면 가장 적은 유권자들로부터 선호도 1위로 표시된 후보는 투표에서 제외된다. 여럿 있다면 모두 제외된다.
    •  

    • 유권자들의 선호도는 제외된 후보들을 고려하지 않았을 때의 순위로 다시 매긴다. 즉, 어떤 유권자에게 2위였던 후보가 제외되었다면 3위였던 후보가 2위, 4위였던 후보가 3위가 되는 식이다.
    •  

    • 아무런 후보도 남지 않는다면 투표는 무효다.
    •  

     

유권자들의 투표 결과가 주어졌을 때 당선자가 누구인지 알아내어라.

 


입력

하나의 입력은 여러개의 테스트 케이스로 이루어 진다. 각 테스트 케이스의 첫 행에는 후보의 수 N(1<= N <=10)과 유권자의 수 M(1<= M <=50)이 주어진다.

다음 행에는 각 후보의 기호를 의미하는 대문자 알파벳이 N 개가 주어진다. 다음 M 개의 행에 걸쳐서 각 유권자의 투표 결과를 의미하는 N 개의 알파벳이 주어진다. 첫 번째 알파벳은 가장 선호하는 후보이고 마지막 알파벳은 가장 선호하지 않는 후보를 뜻한다. 입력에 무효표는 존재하지 않는다. 테스트 케이스의 N과 M이 둘 다 0 이 입력 될 경우 입력을 종료하며, 한 입력 파일에는 20개 이하의 테스트 케이스가 입력 된다고 가정한다.


출력

테스트 케이스 하나당 한 행씩 순서대로 당선자의 기호 알파벳을 출력한다. 당선자가 존재하지 않으면 "void"를 출력한다.


예제

3 5

ABC
ACB
BCA
ACB
BCA
CBA
3 8
ACB
ACB
BCA
ACB
BCA
ACB
BCA
CBA
CAB
0 0
B

void
로그인해야 코드를 작성할 수 있어요.