Берляндский лес был высажен несколько десятилетий назад в форме бесконечной сетки с деревом в каждой ячейке. Теперь деревья выросли, и они образуют довольно плотную структуру.
Такую плотную, на самом деле, что пожар стал реальной опасностью для леса. Это лето выдалось необычно жарким в Берляндии, и некоторые деревья загорелись!
Секунда, в которую начался пожар, считается секундой \(0\). Каждую секунду пожар захватывал все соседние неповрежденные деревья ко всем горящим на данный момент деревьям. Дерево считается соседним, если оно находится в соседней по стороне или по углу ячейке. К счастью, после \(t\) секунд работники Берлянского пожарного отделения добрались до пожара и мгновенно потушили его.
Теперь они хотят высчитать разрушительную мощь пожара. Пусть \(val_{x, y}\) будет секундой, в которую дерево в ячейке \((x, y)\) загорелось. Разрушительная мощь — это сумма \(val_{x, y}\) по всем \((x, y)\) сгоревших деревьев.
Разумеется, все работники пожарного отделения — пожарные, а не программисты, поэтому они просят Вас помочь им с вычислением разрушительной мощи пожара.
Ответ может быть довольно большим, потому выведите его по модулю \(998244353\).
Выходные данные
Выведите единственное целое число — сумма \(val_{x, y}\) по всем \((x, y)\) сгоревших деревьев по модулю \(998244353\).
Примечание
Здесь представлена визуализация первых трех примеров. Серые клетки имеют \(val = 0\), оранжевые — \(val = 1\) и красные — \(val = 2\).
| № | Входные данные | Выходные данные |
|
1
|
1 2
10 11
|
40
|
|
2
|
4 1
2 2
1 3
0 2
2 4
|
18
|
|
3
|
3 0
0 0
-2 1
1 1
|
0
|