스카의 공격 준비
시간 제한2초메모리 제한1024 MB
각 hyena의 현재 유전자열에서 부분수열을 하나씩 골라, 앞 개체의 원래 유전자열이 다음 개체보다 강한 경우의 수를 10^9+7로 나눈 나머지로 구합니다.
문제
스카가 공격을 위해 하이에나 군대를 준비하고 있다. 선발에 하이에나 마리가 모였다. 스카는 그중에서도 타고난 재능을 가진, 가장 능력 있는 하이에나를 뽑고 싶어 한다.
각 하이에나에게는 유전자형이 있다. 유전자형은 유전자가 나열된 것이며, 유전자는 영문 소문자로 표기한다.
각 하이에나가 태어날 때의 유전자형은 현재 유전자형의 비어 있지 않은 부분 수열이었다. 그 뒤 살아가는 동안 유전자형의 여러 위치에 임의의 유전자가 임의의 개수만큼 끼어들어, 지금의 모습이 되었다.
유전자형 가 보다 강하다는 것은, 모든 에 대해 이고 가 보다 알파벳 순서상 앞선다는 인덱스 가 존재한다는 뜻이다. 모든 에 대해 이면 유전자 수가 더 적은 쪽이 강하다.
스카는 태어날 때 유전자형이 어떠했을지 궁금해졌다. 알려진 사실은 번째 하이에나의 태어날 때 유전자형이 번째 하이에나의 것보다 강했다는 것이다. 이 조건을 모두 만족하는 태어날 때 유전자형 집합의 개수를 구하라. 답은 로 나눈 나머지로 출력한다.
입력
첫 줄에 하이에나의 수 ()이 주어진다. 이후 개의 줄에 각 하이에나의 현재 유전자형 가 한 줄에 하나씩 주어진다. 각 문자열의 길이는 13을 넘지 않는다.
출력
조건을 모두 만족하는 태어날 때 유전자형 집합의 개수를 로 나눈 나머지를 출력한다.