P14482 天阶梦游
题目背景
[ドリームレス・ドリームス (Acoustic Arrange)](https://music.163.com/#/song?id=529391584&uct2=U2FsdGVkX1+ckL1JzohOyzor5KJV7Qawv87o4pAhuNE=)。
> 夢の終わりが知りたくないのは
>
> あなたの望む世界じゃないから
>
> こんな続きを愛して欲しい
>
题目描述
> 你得到了一台遗留的密码机并用伪代码还原了这台密码机的原理。
$s$ 是一个长度为 $n$ 的序列。另定义一个正整数 $m$。还有三个 $0\sim m-1$ 的排列 $f_1,f_2,f_3$。
而加密函数 `encode` 传入 $s,k_1,k_2,k_3,f_1,f_2,f_3$。它的定义如下:
```cpp
function rotate(f[], k, x)
m = length(f)
return (f[(x + m - k) mod m] + k) mod m
function encode(s[], k1, k2, k3, f1[], f2[], f3[])
t = []
n = length(s)
m = length(f1)
for i = 1 ... n
t[i] = rotate(f3, k3, rotate(f2, k2, rotate(f1, k1, s[i])))
k1 = (k1 + 1) mod m
if (i mod m) = 0
k2 = (k2 + 1) mod m
if (i mod (m * m)) = 0
k3 = (k3 + 1) mod m
return t
```
其中 $0\le k_1,k_2,k_3
输入格式
第一行两个数,表示 $n,m$。
第二行共 $n$ 个数,第 $i$ 个数表示 $s_i$。
第三行共 $n$ 个数,第 $i$ 个数表示 $t_i$。
第四行共 $m$ 个数,第 $i$ 个数表示 $f_{1,i-1}$。
第五行共 $m$ 个数,第 $i$ 个数表示 $f_{2,i-1}$。
第六行共 $m$ 个数,第 $i$ 个数表示 $f_{3,i-1}$。
输出格式
共若干行,每行三个整数 $k1_i,k2_i,k3_i$,表示一种方案。
所有方案按 $(k1,k2,k3)$ 的字典序顺序输出。
说明/提示
本题捆绑测试,如下是捆绑细节。
|Sub|约束|Score|
| :----------: | :----------: | :----:|
|1|$n\leq100,m \leq26$|$3$|
|2|$n\leq100,m\leq100$|$13$|
|3|$n\leq1000,m\leq300$|$13$|
|4|$n\leq10^6,m\le 200$|$37$|
|5|$n\leq5000,m\le1000$|$10$|
|6|$n\leq2\times 10^5,m\le1000$|$10$|
|7|$n\leq10^6,m\le1000$|$7$|
|8|$n\le 20,m\le 1000$|$7$|
对于所有数据,保证 $1\le n\le 10^6,1\le m\le 1000,0\le s_i,t_i,f_{1,i},f_{2,i},f_{3,i} 你不想做一场,永不会醒的梦吗