题目描述
给定一个长为 m 的序列 {t} 和长为 L 的序列 {s},序列 {s} 由 n 段连续的部分从左往右依次拼接而成,第 i 段包含 li 个相同的元素,每个元素的值都为 vi。
序列 {s′} 由序列 {s} 按一定规则打乱形成。具体而言,序列 {s′} 满足 si⋅kmodL′=si(下标从 0 开始)。其中 k 是一个给定的正整数常数,且保证 gcd(k,L)=1。
求 {t} 在 {s′} 中以子序列形式出现的次数。形式化地说,如果一组严格递增的索引 0≤i1<i2<⋯<im<L,满足对于每个 j=1,2,…,m,都有 tj=sij′,那么称 {t} 为 {s′} 在这一组索引下的子序列。你需要求出有多少种不同的索引组满足这一条件。由于答案可能很大,你需要将答案对 998244353 取模。
输入格式
第一行四个整数 n,m,k,L (1≤n≤2×103, 1≤m≤10, 1≤k<L≤109, gcd(k,L)=1)。
第二行 m 个整数表示序列 {t} (1≤ti≤103)。
接下来 n 行描述序列 {s},每行两个整数 li,vi (1≤li≤109, 1≤vi≤103)。保证 ∑i=1nli=L。
输出格式
一行一个整数,表示答案对 998244353 取模后的结果。
4 2 17 27
3 1
10 3
6 1
10 3
1 1
76
5 3 1789 15150
555 718 726
72 555
1029 718
5807 726
1002 718
7240 555
390415327