#D236. Shipura

    ID: 192 Type: Default 8000ms 536MiB

Shipura

Shipura

Problem Statement

Dr. Suposupo developed a programming language called Shipura. Shipura supports only one binary operator >>{\tt >>} and only one unary function S< >{\tt S<\ >}.

x>>yx {\tt >>} y is evaluated to x/2y\lfloor x / 2^y \rfloor (that is, the greatest integer not exceeding x/2yx / 2^y), and S<x>{\tt S<} x {\tt >} is evaluated to x2mod1,000,000,007x^2 \bmod 1{,}000{,}000{,}007 (that is, the remainder when x2x^2 is divided by 1,000,000,0071{,}000{,}000{,}007).

The operator >>{\tt >>} is left-associative. For example, the expression x>>y>>zx {\tt >>} y {\tt >>} z is interpreted as (x>>y)>>z(x {\tt >>} y) {\tt >>} z, not as x>>(y>>z)x {\tt >>} (y {\tt >>} z). Note that these parentheses do not appear in actual Shipura expressions.

The syntax of Shipura is given (in BNF; Backus-Naur Form) as follows:

expr ::= term | expr sp ">>" sp term term ::= number | "S" sp "<" sp expr sp ">" sp ::= "" | sp " " number ::= digit | number digit digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

The start symbol of this syntax is expr\tt expr that represents an expression in Shipura. In addition, number\tt number is an integer between 00 and 1,000,000,0001{,}000{,}000{,}000 inclusive, written without extra leading zeros.

Write a program to evaluate Shipura expressions.

Input

The input is a sequence of datasets. Each dataset is represented by a line which contains a valid expression in Shipura.

A line containing a single {\tt \\#} indicates the end of the input. You can assume the number of datasets is at most 100100 and the total size of the input file does not exceed 2,000,0002{,}000{,}000 bytes.

Output

For each dataset, output a line containing the evaluated value of the expression.

Sample Input

S< S< 12 >> 2 > > 123 >> 1 >> 1 1000000000 >>129 S<S<S<S<S<2>>>>> S <S< S<2013 >>> 11 >>> 10 >

Output for the Sample Input

81 30 0 294967268 14592400

Example

Input

S< S< 12 >> 2 > > 123 >> 1 >> 1 1000000000 >>129 S<S<S<S<S<2>>>>> S <S< S<2013 >>> 11 >>> 10 >

Output

81 30 0 294967268 14592400

inputFormat

Input

The input is a sequence of datasets. Each dataset is represented by a line which contains a valid expression in Shipura.

A line containing a single {\tt \\#} indicates the end of the input. You can assume the number of datasets is at most 100100 and the total size of the input file does not exceed 2,000,0002{,}000{,}000 bytes.

outputFormat

Output

For each dataset, output a line containing the evaluated value of the expression.

Sample Input

S< S< 12 >> 2 > > 123 >> 1 >> 1 1000000000 >>129 S<S<S<S<S<2>>>>> S <S< S<2013 >>> 11 >>> 10 >

Output for the Sample Input

81 30 0 294967268 14592400

Example

Input

S< S< 12 >> 2 > > 123 >> 1 >> 1 1000000000 >>129 S<S<S<S<S<2>>>>> S <S< S<2013 >>> 11 >>> 10 >

Output

81 30 0 294967268 14592400

样例

S< S> 2 > >
123 >> 1 >> 1
1000000000   >>129
S<S<S<S<S>>>>
S  <S< S>> 11 >>> 10 >
#
81

30 0 294967268 14592400

</p>