#933. 三进制

三进制

Description

小江正在学习三进制。她定义三进制数为每一位只包括 0,1,20,1,2 三种数的无穷长的数字串 aa

与一般的三进制数不同的是,小江的三进制数从左往右书写。例如,在常规表述下,44 的三进制表示为(00000011)3(0000 0011)_3 ,而在小江的三进制数表示下为 (11000000)3(1100 0000……)_3

小江特别喜欢从 00 开始计数,因此他规定三进制的第 00 位为最左侧的那一数位。

下表给出了小江的三进制数表示下,数字 3737 的最低的 88 位数位以及位权: img

现在小江有一个十进制正整数 VV(显然,需要将其转化为小江的三进制数表示),并且给定三种操作:

操作一,将第 ii 位上的数进行操作:00 变为 1111 变为 2222 变为 00

操作二,将第 ii 位上的数进行操作:00 变为 2211 变为 0022 变为 11

操作三,将第 ii 位上的数进行操作:11 变为 2222 变为 1100 不变。

小江一共要进行 qq 次操作。每次操作后,小江需要得到三进制串代表的数值。请你告诉她。

Format

Input

第一行输入两个正整数 V,qV,q

接下来 qq 行,每行一个操作,形如 op i

请注意,你需要将 VV 转化为三进制串并作为初始的三进制串。c

Output

输出共 qq 行,第 ii 行表示第 ii 个操作后的答案。

Samples

4 3
1 1
2 0
1 2
7
6
15

提示

初始时,V=4V=4,转化为小江的三进制数为 1100 0000\texttt{1100 0000} \cdots,接下来进行了 33 次操作:

  • 将第 11 位上的数位从 11 变为 22,三进制数变为 1200 0000\texttt{1200 0000} \cdots,十进制下为 77
  • 将第 00 位上的数位从 11 变为 00,三进制数变为 0200 0000\texttt{0200 0000} \cdots,十进制下为 66
  • 将第 22 位上的数位从 00 变为 11,三进制数变为 0210 0000\texttt{0210 0000} \cdots,十进制下为 1515

对于所有数据,保证 0V10180\leq V\leq 10^{18}1q1051\leq q\leq 10^5,任意获取到的答案不超过 2×10182\times 10^{18}

python中一行输入两个整型数据可采用下列语句实现:

a,b=map(int,input().split())

来源

sxz