길지만 단순한 수식이 압축된 형태로 주어진다. 압축된 수식은 정수 ri와 문자열 si로 이루어진 쌍 N개의 나열이고, 각 si는 숫자 0부터 9까지와 +, -, *로만 이루어진다. 원래 수식은 모든 i에 대해 si를 ri번 반복한 문자열을 만든 다음, 그 문자열을 나열 순서대로 이어 붙여 복원한다.
복원한 수식은 항상 다음 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로 나눈 나머지를 구하는 프로그램을 작성하시오. x를 m으로 나눈 나머지는 x=km+r을 만족하는 정수 k가 존재하고 0≤r<m인 음이 아닌 정수 r이다. 정수 x와 m에 대해 이런 r은 하나로 정해진다.