T286263 某CQ的矩阵递推

题目背景

上完了本周的线性代数课,某CQ学会了矩阵乘法。 “这玩意到底能用来干什么呢?”在下课回宿舍的路上,某CQ思考起矩阵乘法的意义,但是他始终想不到,矩阵到底能有什么实际用途。 回到宿舍,某CQ闲来无事,在纸上划起了斐波那契数列。 “诶?”某CQ突然灵机一动,在其中两个相邻的项两边加上了括号。“这不就是个1x2的矩阵吗?而且这刚好符合推下一项的条件” “那我们能给这个矩阵,乘上另一个矩阵,得到下一个项的矩阵吗?” 于是某CQ开始尝试构造,然后得到了这样一个矩阵: 0 1 1 1 用斐波那契n阶矩阵(某CQ这样叫它) (Fn Fn+1) 乘上这个矩阵,于是我们就得到了这样一个矩阵 : (Fn+1 Fn + Fn+1) 也即 (Fn+1 Fn+2) 这样一直乘下去,就能实现斐波那契数列的递推了!

题目描述

某CQ现在拿到了一个递推数列,非常非常奇怪的递推数列。 这个数列给出了它的前n项,要推出这个数列的下一项,需要用到前n项,且这一项的值为前面n项每一项的ki倍之和。 现在他想知道这个数列的某一项到底是多少。 不过这个数可能非常非常非常的大,所以某CQ只需要你输出这一项对998244353取模的值

输入格式

第一行,包含一个正整数n,表示某CQ想知道这个数列的第n项 第二行,包含一个正整数m,表示数列的前m项是已知的 第三行,包含m个自然数,第i个数fi表示数列的第i项 第四行,包含m个自然数,第i个数ki表示推到m+1项需要第i项的ki倍

输出格式

共一行,包含一个整数,表示数列的第n项对998244353取模的结果

说明/提示

样例解释 按照题目描述的方式计算出了斐波那契数列的第5项。 数据范围及约定 对于20%的数据,满足1