题号:NC237669
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
你要维护两个长度为

的序列

,支持以下操作:
l r k,表示对于每个

执行

次以下操作:交换

,然后

变为

。
操作共

次。
在所有操作结束后输出序列

对 1000000007 取模的结果。

。
输入描述:
第一行两个整数n,m。
接下来一行n个整数表示序列a。
接下来一行n个整数表示序列b。
接下来m行表示操作。
输出描述:
输出两行。
第一行n个整数表示操作后的序列a。
第二行n个整数表示操作后的序列b。
示例1
输入
复制
5 5
1 2 3 4 5
6 7 8 9 10
1 2 5
2 4 8
3 5 9
2 3 10
1 4 2
输出
复制
99 767961 6609952 64689 615
61 474626 4085175 39980 380