2348 - 圆盘
Description

N个圆盘,每个圆盘的圆周上均匀分布了P个点(可连成正P边形),编号 p_1p_n 。这P个点中有M个关键点,所有关键点都是相同的。给出每个圆盘关键点位置的数据(对应的 p_i ),现在

可以随意转动圆盘,问有多少对圆盘最终可以变成相同的形态。


Input

1行:3个数N, M, P中间用空格分隔,其中N为圆盘的数量,M为关键点的数量,P为圆周被均匀分为了P份。(1 \leq M, N \leq 500, 1 \leq P \leq 10^9, M \leq P)。

2 - N + 1行:每行M个数,对应一个圆盘,M个关键点的位置。


Output

输出有多少对有多少对圆盘最终会变成相同的形态。

Examples

Input

5 2 4
1 2
2 4
4 3
2 3
1 3

Output

4
Hint

对于25%的数据,n\leq 20

对于50%的数据,n\leq 200

对于100%的数据, n\leq 500

样例解释:

{1, 2} {2, 4} {4, 3} {2, 3} {1, 3}

经过旋转后:

{1, 2} 同 {4, 3} 相同

{1, 2} 同 {2, 3} 相同

{4, 3} 同 {2, 3} 相同

{2, 4} 同 {1, 3} 相同

所以共有4对。


题目参数
Time Limit 1 second
Memory Limit 128 MB
提交次数 18
通过次数 6