압축된 수식

음이 아닌 정수에 대한 +, -, * 사칙연산 수식이 N개의 (반복 횟수, 짧은 문자열) 조각으로 압축되어 주어질 때, 수식 전체의 값을 1,000,000,007로 나눈 나머지를 구한다.

보통7수학문자열구현분할 정복아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

길지만 단순한 수식이 압축된 형태로 주어진다. 압축된 수식은 정수 rir_i와 문자열 sis_i로 이루어진 쌍 NN개의 나열이고, 각 sis_i는 숫자 0부터 9까지와 +, -, *로만 이루어진다. 원래 수식은 모든 ii에 대해 sis_irir_i번 반복한 문자열을 만든 다음, 그 문자열을 나열 순서대로 이어 붙여 복원한다.

복원한 수식은 항상 다음 BNF를 만족한다.

<expression> := <term> | <expression> '+' <term> | <expression> '-' <term>
<term> := <number> | <term> '*' <number>
<number> := <digit> | <non-zero-digit> <number>
<digit> := '0' | <non-zero-digit>
<non-zero-digit> := '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'

여기서 +는 덧셈, -는 뺄셈, *는 정수의 곱셈을 뜻한다.

주어진 수식의 값을 1,000,000,007로 나눈 나머지를 구하는 프로그램을 작성하시오. xxmm으로 나눈 나머지는 x=km+rx = km + r을 만족하는 정수 kk가 존재하고 0r<m0 \le r < m인 음이 아닌 정수 rr이다. 정수 xxmm에 대해 이런 rr은 하나로 정해진다.

입력

입력은 테스트 케이스 하나로 이루어진다.

N
r1 s1
...
rN sN

첫째 줄에 압축된 수식의 길이 NN (1N1041 \le N \le 10^4)이 주어진다. 다음 NN개의 줄에는 압축된 수식의 조각이 한 줄에 하나씩 주어진다. ii번째 줄은 정수 rir_i (1ri1091 \le r_i \le 10^9)와 문자열 sis_i (1si101 \le |s_i| \le 10)로 이루어지고, rir_isis_i를 반복하는 횟수, sis_i는 원래 수식의 조각이다. 조각을 반복해 이어 붙여 복원한 수식은 문제에 제시한 BNF를 만족한다.

출력

주어진 압축된 수식의 값을 1,000,000,007로 나눈 나머지를 출력한다.