煎饼
题号:NC221661
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

牛妹想吃大煎饼,热心的牛牛肯定要尽力满足她。

牛牛的煎锅一共有n个位置,每个位置可以叠下无限块煎饼。最开始每个位置都是空的。牛牛的煎饼有m种类型,牛牛煎饼时会执行s个操作。一共输入s+1行。  
牛牛煎饼时有一下几种操作:

"1 x k"表示在第x个位置的最上面放置一块类型编号为k的煎饼。

"2 x y表示将y号位置上的所有煎饼都叠到x位置的顶上。

"3 x"表示将x号位置上的所有煎饼翻面。(也就是将最下面的煎饼换到最上面,倒数第二下面的煎饼换到第二上面,以此类推。)

"4 x"表示牛牛会偷吃掉x号位置最上面的一个煎饼。

牛牛想知道对于每次自己偷吃的,也就是第四种操作吃掉的煎饼的类型编号是多少。如果那个位置没有煎饼,则输出"-1",不含引号。

输入描述:

一共输入s+1行。

第一行输入三个整数n,m,s,表示煎锅一共有n个位置,煎饼有m种类型,牛牛一共执行s次操作。

第二行到第s+1行每行2-3个整数,具体操作见题目描述。

输出描述:

对于每次4号操作,输出一个整数,表示牛牛偷吃的煎饼类型。中间用换行隔开。
示例1

输入

复制
5 8 8
1 1 1
1 1 2 
1 3 3 
1 3 4
3 3
2 1 3
4 2
4 1

输出

复制
-1
3

备注: