Problem1647--CF803 - G. Periodic RMQ Problem

1647: CF803 - G. Periodic RMQ Problem

[Creator : ]
Time Limit : 2.000 sec  Memory Limit : 256 MiB

Description

You are given an array $ a $ consisting of positive integers and $ q $ queries to this array. There are two types of queries:

- $ 1 $ $ l $ $ r $ $ x $ — for each index $ i $ such that $ l<=i<=r $ set $ a_{i}=x $ .
- $ 2 $ $ l $ $ r $ — find the minimum among such $ a_{i} $ that $ l<=i<=r $ .

We decided that this problem is too easy. So the array $ a $ is given in a compressed form: there is an array $ b $ consisting of $ n $ elements and a number $ k $ in the input, and before all queries $ a $ is equal to the concatenation of $ k $ arrays $ b $ (so the size of $ a $ is $ n·k $).

Input

The first line contains two integers $ n $ and $ k $ ( $ 1<=n<=10^{5} $ , $ 1<=k<=10^{4} $ ).

The second line contains $ n $ integers — elements of the array $ b $ ( $ 1<=b_{i}<=10^{9} $ ).

The third line contains one integer $ q $ ( $ 1<=q<=10^{5} $ ).

Then $ q $ lines follow, each representing a query. Each query is given either as $ 1 $ $ l $ $ r $ $ x $ — set all elements in the segment from $ l $ till $ r $ (including borders) to $ x $ ( $ 1<=l<=r<=n·k $ , $ 1<=x<=10^{9} $ ) or as $ 2 $ $ l $ $ r $ — find the minimum among all elements in the segment from $ l $ till $ r $ ( $ 1<=l<=r<=n·k $ ).

Output

For each query of type $ 2 $ print the answer to this query — the minimum on the corresponding segment.

Sample 1 Input

3 1
1 2 3
3
2 1 3
1 1 2 4
2 1 3

Sample 1 Output

1
3

Sample 2 Input

3 2
1 2 3
5
2 4 4
1 4 4 5
2 4 4
1 1 6 1
2 6 6

Sample 2 Output

1
5
1

HINT

CF803G.

Source/Category