문자열 만들기
시간 제한1초메모리 제한1024 MB
각 문자의 가중치가 1부터 9까지인 문자 집합이 주어질 때, 가중치 합이 a 이상 b 이하인 문자열의 개수를 10^9+7로 나눈 나머지로 구합니다.
문제
알파벳 대문자 A-Z, 알파벳 소문자 a-z, 숫자 0-9를 원소로 가지는 집합 의 부분 집합 를 정의역으로 하는 함수 가 있다. 의 값은 1 이상 9 이하의 자연수이다.
1 이상 9 이하의 자연수 에 대해 집합 를 다음과 같이 정의하자. 는 집합 의 원소 중에서 함수 의 함숫값이 가 되는 문자들의 집합이다.
에 속하는 문자가 각각 주어질 때, 다음 함수 의 값이 이상 이하가 되도록 하는 서로 다른 의 개수를 구하여 보자.
단, 는 에 속한 문자들을 이어 붙여 만든 길이가 1 이상인 문자열이고, 는 의 번째 문자이다. 또, 는 문자열 의 길이를 의미한다.
입력
첫째 줄에 정수 와 가 공백을 기준으로 주어진다.
둘째 줄부터 열 번째 줄까지 의 모든 문자가 번째 줄에 공백 없이 주어진다.
집합 의 원소의 개수는 1 이상 50 이하이다.
주어지는 모든 문자는 알파벳 대소문자, 숫자로 구성되어 있고 각 문자는 최대 한 번씩만 등장한다.
출력
서로 다른 의 개수를 로 나눈 나머지를 출력한다. 이 수는 소수이다.