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 \le i \le r set ai=x. 2 l r - find the minimum among such ai that l \le i \le 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 \cdot k).
The first line contains two integers n and k (1 \le n \le 105, 1 \le k \le 104).
The second line contains n integers - elements of the array b (1 \le bi \le 109).
The third line contains one integer q (1 \le q \le 105).
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 \le l \le r \le n \cdot k, 1 \le x \le 109) or as 2 l r - find the minimum among all elements in the segment from l till r (1 \le l \le r \le n \cdot k).
For each query of type 2 print the answer to this query - the minimum on the corresponding segment.