eolymp
bolt
Try our new interface for solving problems
Problems

Count Online

Count Online

Time limit 6 seconds
Memory limit 256 MiB

Вам дано множество точек на плоскости.

Нужно уметь отвечать на два типа запросов:

  • ? x_1 y_1 x_2 y_2 — сказать, сколько точек лежит в прямоугольнике [x_1..x_2]×[y_1..y_2]. Точки на границе и в углах тоже считаются. x_1x_2, y_1y_2.

  • + x y — добавить в множество точку (x + res % 100, y + res % 101). Где res — ответ на последний запрос вида ?, а % — операция взятия по модулю.

Input data

Число точек N (1N50000). Далее N точек. Число запросов Q (1Q100000). Далее Q запросов. Все координаты от 0 до 10^9.

Output data

Для каждого запроса GET выведите одно целое число — количество точек внутри прямоугольника.

Examples

Input example #1
5
0 0
1 0
0 1
1 1
1 1
9
? 0 1 1 2
+ 1 2
+ 2 2
? 1 0 2 2
? 0 0 0 0
+ 3 3
? 3 3 3 3
? 4 3 4 3
? 4 4 5 5
Output example #1
3
3
1
0
0
3