만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

단어 그룹

면접 대비

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

요약
단어 N개가 주어질 때, 모든 단어가 선택한 글자 중 하나를 포함하도록 하는 글자의 최소 개수를 구합니다.
난이도

보통10점 중 5점

유형
비트 연산, 완전 탐색, 문자열
정답자
아직 제출이 없습니다

문제

Adam은 다차원 십자말풀이를 만들려고 하며, 이를 위해 NN개의 단어를 골랐다. 이 단어들은 모두 라틴 알파벳의 처음 RR개 글자로만 이루어진다. 단어의 길이는 서로 다를 수 있고, 한 단어 안에서 같은 글자가 여러 번 나올 수도 있다.

Adam은 이 단어들을 여러 그룹으로 나누려고 한다. 각 그룹에는 그 그룹의 모든 단어에 공통으로 나오는 글자가 적어도 하나 있어야 한다.

그룹 수의 최솟값을 구하라.

입력

첫 줄에 단어의 개수 NN과 단어들에 쓰이는 서로 다른 글자의 개수 RR이 주어진다 (1≤N≤20001 \le N \le 2000, 2≤R≤152 \le R \le 15). 다음 NN개 줄에는 각각 한 단어가 주어진다. 단어는 최대 50자의 라틴 알파벳 대문자로 이루어진다.

출력

분할할 수 있는 그룹 수의 최솟값을 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    3 4
    ABC
    BCD
    CDA
    
    예상 출력
    1
    
  2. 예제 2

    입력
    3 3
    ABA
    BC
    CA
    
    예상 출력
    2