codeforces#P1697E. Coloring

    ID: 33043 远端评测题 3000ms 512MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>brute forcecombinatoricsconstructive algorithmsdfs and similardpdsugeometrygraphsgreedyimplementationmath

Coloring

Description

You are given $n$ points on the plane, the coordinates of the $i$-th point are $(x_i, y_i)$. No two points have the same coordinates.

The distance between points $i$ and $j$ is defined as $d(i,j) = |x_i - x_j| + |y_i - y_j|$.

For each point, you have to choose a color, represented by an integer from $1$ to $n$. For every ordered triple of different points $(a,b,c)$, the following constraints should be met:

  • if $a$, $b$ and $c$ have the same color, then $d(a,b) = d(a,c) = d(b,c)$;
  • if $a$ and $b$ have the same color, and the color of $c$ is different from the color of $a$, then $d(a,b) < d(a,c)$ and $d(a,b) < d(b,c)$.

Calculate the number of different ways to choose the colors that meet these constraints.

The first line contains one integer $n$ ($2 \le n \le 100$) — the number of points.

Then $n$ lines follow. The $i$-th of them contains two integers $x_i$ and $y_i$ ($0 \le x_i, y_i \le 10^8$).

No two points have the same coordinates (i. e. if $i \ne j$, then either $x_i \ne x_j$ or $y_i \ne y_j$).

Print one integer — the number of ways to choose the colors for the points. Since it can be large, print it modulo $998244353$.

Input

The first line contains one integer $n$ ($2 \le n \le 100$) — the number of points.

Then $n$ lines follow. The $i$-th of them contains two integers $x_i$ and $y_i$ ($0 \le x_i, y_i \le 10^8$).

No two points have the same coordinates (i. e. if $i \ne j$, then either $x_i \ne x_j$ or $y_i \ne y_j$).

Output

Print one integer — the number of ways to choose the colors for the points. Since it can be large, print it modulo $998244353$.

Samples

3
1 0
3 0
2 1
9
5
1 2
2 4
3 4
4 4
1 3
240
4
1 0
3 0
2 1
2 0
24

Note

In the first test, the following ways to choose the colors are suitable:

  • $[1, 1, 1]$;
  • $[2, 2, 2]$;
  • $[3, 3, 3]$;
  • $[1, 2, 3]$;
  • $[1, 3, 2]$;
  • $[2, 1, 3]$;
  • $[2, 3, 1]$;
  • $[3, 1, 2]$;
  • $[3, 2, 1]$.