프로그램 명: coci_funkcija
제한시간: 1 초

C언어:

int fun() { 
   int ret = 0; 
   for (int a = X1; a <= Y1; ++a) 
      for (int b = X2; b <= Y2; ++b) 
         ... 
            for (int < N-th > = XN; < N-th > <= YN; ++< N-th >) 
               ret = (ret + 1) % 1000000007; 
   return ret; 
} 
파스칼:
function fun: longint; 
var ret: longint; 
a, b, ... , y, z: longint; 
begin 
   ret := 0; 
   for a := X1 to Y1 do 
   for b := X2 to Y2 do 
   ... 
      for < N-th > := XN to YN do 
      ret := (ret + 1) mod 1000000007; 
      fun := ret; 
   end; 
< N-th > 라는 건 N번째 알파벳 소문자라는 걸 의미합니다. Xi와 Yi의 자리에는 100 000보다 같거나 작은 양의 정수 혹은 이전에 사용된 알파벳 변수 중 하나가 들어갑니다.

예를 들어 X3의 경우 100 000보다 같거나 작은 양의 정수 혹은 세 번째 알파벳인 c보다 앞에 있는 a와 b가 들어올 수 있습니다.

우리는 위 함수의 리턴값을 계산해야합니다.

입력

출력

첫 줄에 함수의 리턴값을 출력하세요.

예제 1번 보충 설명:

C언어: 
int fun() { 
   int ret = 0; 
   for (int a = 1; a <= 2; ++a) 
      for (int b = a; b <= 3; ++b) 
         ret = (ret + 1) % 1000000007; 
   return ret; 
} 

파스칼: 
function fun: longint; 
var ret: longint; 
a, b: longint; 
begin 
   ret := 0; 
   for a := 1 to 2 do 
      for b := a to 3 do 
         ret := (ret + 1) mod 1000000007; 
   fun := ret; 
end; 

Mirko has written the following function:
int fun() {
   int ret = 0;
   for (int a = X1; a <= Y1; ++a)
      for (int b = X2; b <= Y2; ++b)
         ...
            for (int < N-th > = XN; < N-th > <= YN; ++< N-th >)
               ret = (ret + 1) % 1000000007;
   return ret;

}

function fun: longint;
var ret: longint;
a, b, ... , y, z: longint;
begin
   ret := 0;
   for a := X1 to Y1 do
   for b := X2 to Y2 do
   ...
      for < N-th > := XN to YN do
      ret := (ret + 1) mod 1000000007;
      fun := ret;
   end;

denotes the Nth lowercase letter of the English alphabet. Each Xi and Yi denotes either a positive integer less than or equal to 100 000 or a name of a variable that some outer loop iterates over. For example, X3 can be either a, b, or an integer literal. At least one of Xi and Yi will be an integer literal (i.e. not a variable name) for every i. Compute the return value of the function.

입력

The first line of input contains the positive integer N (1 ≤ N ≤ 26). For the next N lines, the ith line contains Xi and Yi, separated with a space. If Xi and Yi are both integer literals, then Xi ≤ Yi.

출력

The first and only line of output must contain the return value of the function.

입출력 예

입력

input

2
1 2
a 3

output

5

input

3
2 3
1 2
1 a

output

10

input

3
1 2
a 3
1 b

output

11
출처:coci
번역:ladown21

[질/답] [제출 현황] [푼 후(0)]
[ 채 점 ] [홈으로]  [뒤 로]