a^i b^j c^k 부분 수열 세기

a, b, c로만 이루어진 문자열에서 a가 한 개 이상, 그다음 b가 한 개 이상, 그다음 c가 한 개 이상인 부분수열의 개수를 1,000,000,007로 나눈 나머지로 구한다.

보통5동적 계획법문자열조합론아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

a, b, c로만 이루어진 문자열 SS가 주어진다. SS의 부분 수열 중에서 aibjcka^i b^j c^k 형태인 것의 개수를 구하는 프로그램을 작성하시오. 이때 i1i \ge 1, j1j \ge 1, k1k \ge 1을 만족해야 한다.

aibjcka^i b^j c^k는 a가 ii개, 이어서 b가 jj개, 그 다음 c가 kk개 연속해서 나오는 문자열이다. 예를 들어 a2b3c1a^2 b^3 c^1aabbbc이고, a3b1c6a^3 b^1 c^6aaabcccccc이다.

부분 수열은 SS에서 문자를 0개 이상 지우고 남은 문자를 원래 순서대로 이어 붙인 문자열이다. 고른 위치의 집합이 다르면 남은 문자열이 같아도 서로 다른 부분 수열로 센다.

입력

첫째 줄에 a, b, c로만 이루어진 문자열 SS가 주어진다. SS의 길이는 1,000,000을 넘지 않는다.

출력

첫째 줄에 SS의 부분 수열 중 aibjcka^i b^j c^k 형태인 것의 개수를 1,000,000,007로 나눈 나머지를 출력한다.