列车售货员难题
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

大家在乘坐火车的时候,经常遇到售货员卖一些零食小吃。他们有时会把自己所售卖的物品名字编成押韵的顺口溜,比如“花生瓜子八宝粥,啤酒饮料矿泉水,腿收一下”,“花生瓜子矿泉水,啤酒饮料爆米花,德州扒鸡大碗面”这样做似乎可以让销量更好。

在一辆有n节车厢的火车上,车厢编号从前往后依次为[1,n]的整数。其中每个车厢都会有若干项需要的物品,物品的编号是范围在[1,m]的整数。

售货员Alice会被安排在火车的其中一段连续的车厢里叫卖商品。Alice是一名有文采且敬业的售货员,不管被分配到哪一段连续的车厢售货,她都会准备好那些车厢所需要的所有物品,并且把这些物品的名字编成一段顺口溜。Alice请让你帮忙计算一下:为了应对所有情况,她需要写多少段不同的顺口溜?

输入描述:

第一行输入两个正整数 n,m满足(1\le n\le 2\times 10^5),(1\leq m \leq 100)。分别代表车厢节数和物品编号最大值。

其后n行,第i行首先是一个整数k_i,满足1\le k_i \le m,代表第i-1节车厢需要的物品种类数。其后k_i个整数,代表第i-1节车厢所需要的物品的编号。保证k_i的和不超过10^6,保证输入的物品编号是[1,m]内的整数,并且同一节车厢的物品编号互不相同。

输出描述:

请你输出一行一个整数,代表Alice需要编写的顺口溜的个数。
示例1

输入

复制
5 5
1 1
2 1 2
2 4 5
1 1
2 2 3

输出

复制
8

说明

以下列出所有区间的物品集合:
区间[1,1]:物品{1}, 区间[1,2]:物品{1,2}, 区间[1,3]:物品{1,2,4,5}, 区间[1,4]:物品{1,2,4,5}, 区间[1,5]:物品{1,2,3,4,5},
区间[2,2]:物品{1,2},区间[2,3]:物品{1,2,4,5},区间[2,4]:物品{1,2,4,5},区间[2,5]:物品{1,2,3,4,5},区间[3,3]:物品{4,5},区间[3,4]:物品{1,4,5},区间[3,5]:物品{1,2,3,4,5},区间[4,4]:物品{1},区间[4,5]:物品{1,2,3},区间[5,5]:物品{2,3}。

其中出现的物品集合有:
{1},{1,2},{1,2,4,5},{1,2,3,4,5},{4,5},{1,4,5},{1,2,3},{2,3}共8种