잊어버린 비밀번호

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

문제

Bessie는 자신의 비밀번호를 잊어버렸지만, 비밀번호에 대한 몇 가지 유용한 사실은 기억하고 있다.

비밀번호 $P$는 소문자 로마자로 이루어진 길이 $L$의 문자열이다($1 \le L \le 1000$). 이 비밀번호는 사전에 있는 서로 다른 $NW$개의 단어($1 \le NW \le 1000$) 중 하나 이상을 이어 붙여 만들 수 있으며, 같은 단어를 여러 번 사용해도 된다. 사전의 각 단어는 길이가 $1$ 이상 $20$ 이하인 소문자('a'부터 'z'까지)의 나열이다.

Bessie는 비밀번호의 일부 글자와 그 위치도 기억하고 있다. 이 부분 정보는 길이 $L$의 문자열로 주어지며, 각 자리에는 기억하는 정확한 글자가 있거나, 기억하지 못하는 자리라면 ? 문자가 있다.

사전과 Bessie가 기억하는 부분 정보가 주어질 때, 다음 두 조건을 모두 만족하는 비밀번호를 찾아라.

  • 기억하는 위치에는 기억하는 글자가 정확히 놓여 있다(? 자리에는 임의의 소문자가 올 수 있다).
  • 사전의 단어를 하나 이상 이어 붙인 문자열이다.

두 조건을 모두 만족하는 비밀번호가 여러 개라면 사전순으로 가장 작은 것을 출력한다. 유효한 비밀번호가 적어도 하나 존재함이 보장된다.

입력

  • 첫째 줄: 공백으로 구분된 두 정수 $L$과 $NW$.
  • 둘째 줄: Bessie가 기억하는 부분 정보를 나타내는 길이 $L$의 문자열. 기억하는 자리는 소문자, 기억하지 못하는 자리는 ?이다.
  • 셋째 줄부터 $NW+2$째 줄까지: $i+2$째 줄에는 사전의 $i$번째 단어 $W_i$가 주어진다.

출력

  • 부분 정보와 일치하면서 사전의 단어들을 이어 붙여 만들 수 있는, 사전순으로 가장 작은 비밀번호를 한 줄에 출력한다.