# Minimum on the segment

Easy

Execution time limit is 1 second

Runtime memory usage limit is 128 megabytes

Write a program which manipulates a sequence $A={a_{0},a_{1},...,a_{n−1}}$ with the following operations:

$update(s,t,x)$: change $a_{s},a_{s+1},...,a_{t}$ to $x$.

$find(s,t)$: report the minimum element in $a_{s},a_{s+1},...,a_{t}$.

Note that the initial values of $a_{i}(i=0,1,...,n−1)$ are $2_{31}−1$.

## Input

The first line contains the number $n(1≤n≤10_{5})$ of elements in $A$ and the number $q(1≤q≤10_{5})$ of queries.

Then, the $i$-th query is given in one of the following format:

$0stx$

$1st$

The first digit represents the type of the query: $0$ denotes $update(s,t,x)$ and $1$ denotes $find(s,t)$. It is known that $0≤s≤t<n,0≤x<2_{31}−1$.

## Output

For each $find$ operation, print the minimum value on a separate line.

## Examples

Input #1

Answer #1

Input #2

Answer #2

Submissions 27

Acceptance rate 26%