Cho xâu ~s~ độ dài ~n~, các kí tự của xâu được đánh số từ ~1~ đến ~n~. Cho ~q~ truy vấn thuộc một trong hai dạng:
Cho số nguyên ~i~ và chữ cái ~c~, gán ~s_i \leftarrow c~.
Cho ba số nguyên ~i, j, k~. Xét hai xâu con bắt đầu từ ~i~ và ~j~, có độ dài ~k~, so sánh thứ tự từ điển~^\dagger~ của hai xâu này. Nói cách khác, hãy xét thứ tự từ điển của hai xâu con ~s_i s_{i+1} \dots s_{i+k-1}~ và xâu con ~s_j s_{j+1} \dots s_{j+k-1}~
Yêu cầu: Với mỗi truy vấn loại 2, in ra một trong ba giá trị tương ứng kết quả so sánh thứ tự từ điển tìm được:
Nếu hai xâu con giống nhau hoàn toàn, in ra =.
Nếu xâu con ~s_i s_{i+1} \dots s_{i+k-1}~ có thứ tự từ điển bé hơn xâu ~s_j s_{j+1} \dots s_{j+k-1}~, in ra <.
Ngược lại, in ra >.
~\dagger~ Xâu ~a_1 a_2 \dots a_m~ có thứ tự từ điển bé hơn xâu ~b_1 b_2 \dots b_m~ khi tồn tại một vị trí ~k~ (với ~0 \leq k \leq m~) sao cho tiền tố độ dài ~k~ của hai xâu ~a, b~ là giống nhau và ~a_{k+1} < b_{k+1}~. Việc so sánh hai chữ cái được thực hiện dựa trên thứ tự bảng chữ cái alphabet.
Input
Dòng đầu chứa hai số nguyên ~n, q~ là độ dài xâu ~s~ và số lượng truy vấn.
Dòng thứ hai chứa xâu độ dài ~n~ là xâu ~s~ gồm các chữ cái thường trong bảng chữ cái tiếng Anh.
Trong ~q~ dòng tiếp theo, mỗi dòng chứa mô tả của một truy vấn:
Đối với truy vấn loại 1, dòng này chứa ba số nguyên ~1 \space i \space c~ (với ~1 \leq i \leq n~ và ~c~ là chữ cái thường trong bảng chữ cái tiếng Anh).
Đối với truy vấn loại 2, dòng này chứa bốn số nguyên ~2 \space i \space j \space k~ (với ~1 \leq i, j \leq n~ và ~1 \leq k \leq n - \max(i, j) + 1~).
Output
In ra một xâu gồm các kí tự =, < và > biểu diễn đáp án của các truy vấn loại 2 tương ứng.
Scoring
Subtask ~1~ (chiếm ~20\%~ số điểm): ~1 \leq n, q \leq 5000~.
Subtask ~2~ (chiếm ~30\%~ số điểm): ~1 \leq n, q \leq 2 \cdot 10^5~; các kí tự trong xâu ~s~ tại mỗi thời điểm là ~\texttt{a}~ hoặc ~\texttt{b}~.
Subtask ~3~ (chiếm ~50\%~ số điểm): ~1 \leq n, q \leq 2 \cdot 10^5~.
Sample Input 1
6 4
abcabc
2 1 4 2
1 6 d
2 1 4 3
2 2 4 3
Sample Output 1
=
<
>
Bình luận