Point: 100.0
Time limit: 1.0s
Memory limit: 250 M
Input: stdin
Output: stdout
Author:  
Problem type
Ngôn ngữ cho phép
C#, C++

Cho một tập \(A\), ban đầu tập không có phần tử nào. Chúng ta thực hiện các thao tác sau áp dụng lên tập:

  • \(INSERT\ x\): Thêm giá trị \(x\) vào tập \(A\). Nếu trong tập đã có thì không làm gì.

  • \(DELETE\ x\): Nếu trong tập có phần tử \(x\) thì xóa nó khỏi tập, ngược lại thì không làm gì.

  • \(ASK\ x\): Trả về “Yes” nếu \(x\) có trong \(A\), “No” nếu ngược lại.

  • \(L\ x\): Trả về giá trị phần tử lớn nhất bé hơn \(x\), nếu không có thì in ra -1.
  • \(G\ x\): Trả về giá trị phần tử nhỏ nhất lớn hơn \(x\), nếu không có thì in ra -1.

Yêu cầu

Cho \(m\) truy vấn thuộc 1 trong 5 dạng trên, trả lời lần lượt các truy vấn dạng 3, 4, 5.

Input

  • Dòng đầu chứa số \(m\).
  • \(m\) dòng tiếp theo, mỗi dòng chứa 1 loại truy vấn,

Output

  • Trả lời các truy vấn loại 3, 4, 5.

Giới hạn

  • \(0<m,|x|\leq 100000\)

Sample Input

6
INSERT 5
INSERT 10
DELETE 10
ASK 10
INSERT 3
L 4

Sample Output

No
3