[MtOI2019] 膜Siyuan

题目背景

你强归你强,$\mathsf S\mathsf{\color{red} iyuan}$ 比你强。——$\mathsf S \mathsf{\color{red} iyuan}$ disangan233 最近发现了一款 OIer 们的游戏:[膜 $\color{black} \mathsf S \mathsf{\color{red} iyuan}$](https://lmoliver.github.io/mosiyuan/index.html)。 他被里面的「真理 IV」所困惑,于是他找到了你寻求帮助。

题目描述

给你 $1$ 个正整数 $M$,$n(n\leq 5)$ 个正整数 $3$ 元组 $\{a_i,b_i,c_i\}(a_i,b_i,c_i\leq M\leq 2000)$,请你求出所有满足 $$ \forall i\leq n ,s.t.~|a_i-x|\oplus |b_i-y|\oplus |c_i-z| = 9 $$ 的**有序**正整数 $3$ 元组 $\{x,y,z\}(x,y,z \leq M)$的个数。 其中,$\forall$ 表示 "对于所有",$s.t.$ 表示 "使得",$A \oplus B \oplus C$ 表示 $A,B,C$ 的异或和。 对于 C++,`A^B^C` 或 `A xor B xor C` 即为 $A \oplus B \oplus C$ 的答案 。 这里提供一份模板: ```cpp if ((a ^ b ^ c) == 9) { Your code here... } ``` 对于 $2$ 个有序 $3$ 元组 $A,B$,如果 $x_A \not =x_B$ 或 $y_A \not =y_B$ 或 $z_A \not =z_B$,$A,B$ 即被视为是不同的。

输入输出格式

输入格式


共 $n+1$ 行。 第 $1$ 行输入 $2$ 个正整数 $n$,$M$。 接下来 $n$ 行第 $i$ 行输入 $3$ 个正整数 $a_i,b_i,c_i$。

输出格式


共 $1$ 行,输出 $1$ 个非负整数表示所求答案。

输入输出样例

输入样例 #1

5 200
21 84 198
38 47 102
44 47 132 
63 150 166
76 79 132

输出样例 #1

4

说明

#### 样例解释 $1$ 所有满足条件的 $\{x,y,z\}$ 有: $\{88,88,120\}$,$\{88,104,104\}$,$\{120,120,120\}$ 和 $\{120,136,104\}$。 共 $4$ 个。 ### 子任务 对于 $10\%$ 的数据,保证与样例完全一致。 对于 $60\%$ 的数据,保证 $M\leq 200$。 对于所有数据,保证 $a_i,b_i,c_i\leq M\leq 2000$,$n\leq 5$。 ### 题目来源 [MtOI2019 Extra Round](https://www.luogu.org/contest/22614) T2 出题人:disangan233 验题人:Studying Father