F. Cyclic Ciphertime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given n sequences. Each sequence consists of positive integers, not exceeding m. All integers in one sequence are distinct, but the same integer may appear in multiple sequences. The length of the i-th sequence is ki.Each second integers in each of the sequences are shifted by one to the left, i.e. integers at positions i > 1 go to positions i - 1, while the first integers becomes the last.Each second we take the first integer of each sequence and write it down to a new array. Then, for each value x from 1 to m we compute the longest segment of the array consisting of element x only.The above operation is performed for 10100 seconds. For each integer from 1 to m find out the longest segment found at this time.InputThe first line of the input contains two integers n and m (1 ≤ n, m ≤ 100 000) — the number of sequences and the maximum integer that can appear in the sequences. Then follow n lines providing the sequences. Each of them starts with an integer ki (1 ≤ ki ≤ 40) — the number of integers in the sequence, proceeded by ki positive integers — elements of the sequence. It's guaranteed that all integers in each sequence are pairwise distinct and do not exceed m.The total length of all sequences doesn't exceed 200 000.OutputPrint m integers, the i-th of them should be equal to the length of the longest segment of the array with all its values equal to i during the first 10100 seconds.ExamplesInput3 43 3 4 14 1 3 4 23 3 1 4Output2132Input5 52 3 14 5 1 3 24 2 1 3 51 32 5 3Output31401Input4 63 4 5 32 6 32 3 63 3 6 5Output002112
Input3 43 3 4 14 1 3 4 23 3 1 4
Output2132
['chinese remainder theorem', 'data structures', 'implementation', 'number theory', 'two pointers', '*2800']