编程题
### 问题描述
在游戏中防御力一般分成物理防御和魔法防御,现在点满防御的梅普露在每次挑战 Boss 前都会使用技能给自己上 buff 。
假设在一开始时,梅普露的物理防御的数值为 $a$ ,魔法防御的数值为 $b$ 。她有以下两种技能来提升自己的防御力,其中 $k_1,k_2$ 分别为技能 $1$ ,技能 $2$ 的技能等级。
技能 $1$ : $a = k_1 \times a + b$ 。
技能 $2$ : $b = a + k_2 \times b$ 。
在梅普露的备忘录中有一个仅由 $0$ 和 $1$ 组成的字符串 $s$ 。梅普露会按字符串 $s$ 从左到右的顺序释放技能。$0$ 代表释放技能 $1$ ,$1$ 代表释放技能 $2$ 。
现在梅普露会修改 $q$ 次字符串 $s$ 。
如果修改的位置上的字符是 $0$ ,则会把这个位置的字符变成 $1$ 。如果修改的位置上的字符是 $1$ ,则会把这个位置的字符变成 $0$ 。
梅普露想知道每次修改后,在此释放顺序下她的物理防御 $a$ 和魔法防御 $b$ 分别将会是多少。
注意:每次修改将会永久改变释放的技能。
由于梅普露的数值过高,请把结果对 $10^9 + 7$ 取模。
### 输入格式
第一行五个整数 $n, a, b, k_1, k_2$ 分别表示字符串 $s$ 的长度,梅普露的物理防御,梅普露的魔法防御,技能 $1$ 的等级,技能 $2$ 的等级。
第二行一个仅由 $0$ 和 $1$ 组成的字符串 $s$ ,表示梅普露释放技能的顺序。
第三行一个整数 $q$,表示梅普露修改 $s$ 的次数。
接下来 $q$ 行:
每一行一个整数 $x$ ,表示梅普露要修改 $s$ 的第 $x$ 个位置的字符。
### 输出格式
对于 $q$ 次询问,每次询问输出一行两个整数,分别表示梅普露释放完所有技能后的物理防御和魔法防御,并把结果对 $10^9 + 7$ 取模。
### 样例输入
```text
3 1 2 3 4
101
2
1
2
```
### 样例输出
```text
17 25
5 57
```
### 说明
释放任何技能前 $a = 1, b = 2, k1 = 3, k2 = 4$ 。
第一次修改后 $s = 001$ ,每次释放技能后 $a,b$ 分别是:
$a=5,b=2\rightarrow a=17,b=2\rightarrow a=17,b=25$ 。
第二次修改后 $s = 011$ ,每次释放技能后 $a,b$ 分别是:
$a=5,b=2\rightarrow a=5,b=13\rightarrow a=5,b=57$ 。
### 评测数据规模
对于 $25$% 的评测数据,$1\leq n, q, a, b, k_1, k_2\leq 10, 1\leq x\leq n$。
对于 $100$% 的评测数据,$1\leq n, q\leq 10^5, 1\leq a,b,k_1,k_2\leq 10^9, 1\leq x\leq n$。