AT_bitflyer2018_final_e 数式とクエリ

Description

[problemUrl]: https://atcoder.jp/contests/bitflyer2018-final/tasks/bitflyer2018_final_e `(`, `)`, `+`, `-`, `*`, `a` のみからなる数式 $ S $ が与えられます(詳細は問題文の後半を参照してください)。$ S $ に含まれる `a` の個数を $ N $ とします。 $ N $ 個の整数 $ a_1,\ ...,\ a_N $ と $ 2 $ 個の整数 $ (b_i,\ x_i) $ からなる $ Q $ 個のクエリが与えられるので、これらのクエリを処理してください。 クエリ: 与えられた数式中の左から $ b_i $ 番目の `a` を $ x_i $ に、左から $ 1,\ ...,\ b_i-1,\ b_i+1,\ ...,\ N $ 番目の `a` をそれぞれ $ a_1,\ ...,\ a_{b_i-1},\ a_{b_i+1},\ ...,\ a_N $ に置き換えた数式の値と $ 10^9+7 $ を法として合同な $ 0 $ 以上 $ 10^9+6 $ 以下の整数を出力する。 この問題で与えられる数式 $ S $ は、以下のような BNF 表記の `` シンボルで表されます。 ``` ::= | '+' | '-' ::= | '*' ::= 'a' | '(' ')' ```

Input Format

入力は以下の形式で標準入力から与えられる。 > $ S $ $ Q $ $ a_1 $ ... $ a_N $ $ b_1 $ $ x_1 $ : $ b_Q $ $ x_Q $

Output Format

$ Q $ 行出力せよ。 $ i $ 行目 ($ 1\

Explanation/Hint

### 制約 与えられる数式に含まれる `a` の個数を $ N $ とします。 - $ S $ の長さは $ 200\,000 $ 以下 - $ S $ は問題文中の BNF 表記の `` シンボルとして表せる - $ 0\