假的线段树
题号:NC15048
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

给你一个长为n的序列a,有m次操作

1.把区间[l,r]内所有x变成y

2.查询区间[l,r]内第k小值

输入描述:

第一行两个数n,m
第二行n个数表示序列a
后面m行
1 l r x y :把区间[l,r]中所有x变成y
2 l r k :查询区间[l,r]中的第k小值

输出描述:

对于每个询问,输出一个数表示答案
示例1

输入

复制
3 3
2 3 3
2 1 3 1
1 1 3 3 1
2 1 3 2

输出

复制
2
1

备注:

对于100%的数据,1 <= n, m , ai <= 1000