아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

SNUPTI

시간 제한2초메모리 제한1024 MB

요약
길이 N의 문자열 M개가 주어질 때, 각 자리에 서로 겹치지 않는 문자 집합을 배정해 이 M개 문자열이 정확히 가능한 모든 조합이 되도록 만들 수 있는지 판별한다.
난이도

보통10점 중 7점

유형
구현, 수학, 완전 탐색, 문자열
정답자
아직 제출이 없습니다

문제

마시로와 카루나는 MBTI에 대항할 새로운 심리검사 SNUPTI를 개발 중이다.

SNUPTI는 N개의 척도를 사용하며, i번째 척도의 결과는 S**i개의 서로 다른 알파벳 대문자 중 하나로 나타낸다. (1 ≤ N ≤ 26, 1 ≤ i ≤ N, 1 ≤ S**i ≤ 26) SNUPTI의 결과는 각 척도의 결과를 나타내는 알파벳을 순서대로 나열한 문자열로 나타낸다. 지표를 이해하기 쉽게 하기 위해서 각 척도의 결과에 사용되는 알파벳은 모두 서로 다르다.

마시로는 SNUPTI의 결과로 가능한 모든 문자열의 목록을 만들어서 카루나에게 전달하기로 했는데, 실수로 마시고 있던 달콤한 코코아를 흘려버려서 목록의 내용을 읽을 수 없게 되어버렸다. 결국 귀찮아진 마시로는 길이 N의 알파벳 대문자로만 이루어진 문자열 M개의 목록을 적당히 만들어서 카루나에게 전달했다. 게다가 각 척도에 대해 가능한 결과를 전달하지도 않아서, 카루나는 목록이 맞게 만들어졌는지 확인할 수가 없었다. 대신에 카루나는 문자열의 목록으로부터 각 척도의 가능한 결과를 거꾸로 만들어 내기로 했다.

카루나는 i번째 척도에 대해 가능한 결과를 나타내는 알파벳의 집합 A**i를 만들어서, 이로부터 가능한 지표의 검사결과 문자열만이 마시로가 전달한 목록에서 모두 각각 한 번씩만 등장하도록 하고 싶다. (1 ≤ i ≤ N) 이때 각 척도의 결과에 사용되는 알파벳은 모두 서로 달라야 한다. 즉, 1 ≤ i < j ≤ N에 대해 A**i ∩ A**j = ∅이어야 한다.

입력

첫째 줄에 SNUPTI에 사용되는 척도의 개수 N과 마시로가 카루나에게 전달한 문자열의 목록의 길이 M이 주어진다. (1 ≤ N ≤ 26; 1 ≤ M ≤ 20 000)

둘째 줄부터 M개의 줄에 마시로가 전달한 문자열의 목록이 한 줄에 문자열 하나씩 주어진다. 각 문자열은 길이 N의 알파벳 대문자로만 이루어진 문자열이다.

출력

카루나가 각 척도의 가능한 결과를 거꾸로 만들어 낼 수 있다면 첫째 줄에 YES를, 아니라면 NO를 출력한다.

카루나가 각 척도의 가능한 결과를 거꾸로 만들어 낼 수 있다면 둘째 줄부터 N개의 줄에 A1, A2, ⋯, A**N에 대해 각 집합의 원소를 알파벳 순으로 나열해 이어붙인 문자열을 한 줄에 하나씩 출력한다.

예제7

  1. 예제 1

    입력
    4 16
    ENTP
    ENFP
    INTP
    INFJ
    ESTJ
    INTJ
    ISFJ
    ESFP
    ESTP
    INFP
    ENTJ
    ISTP
    ESFJ
    ISFP
    ISTJ
    ENFJ
    
    예상 출력
    YES
    EI
    NS
    FT
    JP
    
  2. 예제 2

    입력
    2 6
    AA
    AO
    BB
    BO
    OO
    AB
    
    예상 출력
    NO
    
  3. 예제 3

    입력
    2 4
    AA
    AB
    BA
    BB
    
    예상 출력
    NO
    
  4. 예제 4

    입력
    2 4
    AD
    BC
    AC
    BD
    
    예상 출력
    YES
    AB
    CD
    
  5. 예제 5

    입력
    2 3
    AD
    BC
    AC
    
    예상 출력
    NO
    
  6. 예제 6

    입력
    2 5
    AD
    BC
    AC
    BD
    BC
    
    예상 출력
    NO
    
  7. 예제 7

    입력
    4 7
    BAKE
    CAKE
    FAKE
    LAKE
    MAKE
    TAKE
    WAKE
    
    예상 출력
    YES
    BCFLMTW
    A
    K
    E