%
% Problem author: Sergey Kopeliovich & Jury
% Text author: Yury Petrov & Sergey Kopeliovich
% Tests author: Sergey Kopeliovich
% Source: 2010-10-10, SPBU Championship
%

\begin{problem}{Приказы}
{orders.in}{orders.out}
{2 секунды}{256 мебибайт}{}

Вася работает в НИИГСД (НИИ Государственных Структур Данных).
Он изучает приказы правительства далёкого государства.

В том государстве все города расположены вдоль одной дороги.
Они пронумерованы в порядке обхода. Изначально качество жизни
в каждом из них равно нулю.

Далее последовательно издаются указы вида <<уровень жизни
в городах с $i$ по $j$ должен стать не меньше $x$>>.

Также есть некоторые официальные заявления. Они имеют
следующую форму: <<средний уровень жизни в городах с $i$ по
$j$ равен $x$>>. Вася нуждается в помощи с проверкой этих
утверждений: для каждого из них известны $i$ и $j$, требуется
подсчитать верное значение $x$.

Можете считать, что каждый приказ исполняется, а также в каждый
момент времени каждый город имеет минимальный неотрицательный
уровень жизни, удовлетворяющий всем приказам.

\InputFile

Ввод состоит из одного или более тестов.
Каждый тест начинается строкой с двумя целыми числами $n$ и
$k$ "--- числом городов и событий, соответственно. Следующие
$k$ строк содержат по одному описанию события:

\begin{shortnums}
  \item
    \t{\^} $i$ $j$ $x$ означает приказ: после этого, все города
    с номерами от $i$ до $j$ включительно должны иметь уровень
    жизни не менее $x$ ($1 \le x \le 10^9$,
    $1 \le i \le j \le n$).
  \item
    \vskip 4pt
    \t{?} $i$ $j$ означает официальное заявление: следует
    подсчитать средний уровень жизни в городах с $i$ по $j$
    включительно ($1 \le i \le j \le n$).
\end{shortnums}

В конце ввода будет помещён тест с $n = k = 0$, который не
требуется обрабатывать.

Сумма $n$ по всему вводу не превысит $100\,000$.
Сумма $k$ по всему вводу не превысит $100\,000$.

\OutputFile

Для каждого официального заявления выведите на отдельной строке
искомый средний уровень жизни в виде несократимой дроби с
наименьшим возможным натуральным знаменателем. Если знаменатель
равен $1$, выведите вместо дроби целое число.
Следуйте формату вывода, как это показано в примере.

\Example

\begin{example}
\exmp{
10 10
? 1 10
\^  1 10 1
? 1 10
\^  2 3 10
\^  3 4 5
? 2 2
? 3 3
? 4 4
? 1 5
? 1 10
0 0
}{
0
1
10
10
5
27/5
16/5
}%
\end{example}

\end{problem}
