Напишіть програму, яка обробляє послідовність A = \{a_0, a_1, ..., a_{n - 1}\} за допомогою наступних операцій:
update(s,t,x): змініть значення a_s, a_{s + 1}, ..., a_t на .
find(s,t): виведіть найменший елемент серед a_s, a_{s + 1}, ..., a_t.
Зверніть увагу, що початкові значення a_i~(i = 0, 1, ..., n - 1) дорівнюють 2^{31} - 1.
Перша стрічка містить два числа: кількість елементів n~(1 \le n \le 10^5) у та кількість запитів q~(1 \le q \le 10^5).
Далі слідують запитів, кожен з яких має один з наступних форматів:
Перша цифра визначає тип запиту: відповідає update(s,t,x), а відповідає find(s,t). Гарантується, що 0 \le s \le t < n, 0 \le x < 2^{31} - 1.
Для кожної операції виведіть мінімальне значення в окремому рядку.
Приклад 1
Приклад 2