Processing math: 100%
编程题
                ### 问题描述

小桥是一位热衷于健身的年轻人,他计划去健身房锻炼。在健身房中,有 n 个负重块,每个负重块的重量分别为 w1,w2,,wn。小桥的健身重量为 a。现在,小桥想知道有多少种不同的方法可以从这些负重块中选择一个或多个,使得总重量等于小桥的健身重量 a

两种选择方法不同当且仅当:选择的负重块的下标集合不同,例如 {w1,w3,w5}{w1,w5,w3} 是相同的,但是 {w1,w3,w5}{w1,w5,w4} 是不同的。

方案数可能很大,请对 998244353 取模。

你能帮助小桥解决这个健身之谜吗?

输入格式

第一行输入一个整数 a,表示小桥的健身重量。

第二行输入一个整数 n,表示负重块的数量。

第三行输入 n 个整数,以空格分隔,表示负重块的重量 w1,w2,,wn

输出格式

输出一个整数,表示有多少种不同的方法可以选择负重块,使得总重量等于小桥的健身重量 a,答案对 998244353 取模。

样例输入

4
5
2 3 1 4 2

样例输出

3

说明

有以下方式划分:{w1,w5},{w2,w3},{w4},也就是 {2,2},{3,1},{4}

评测数据范围

1a1000,1wi1000,n100

查看答案
赣ICP备20007335号-2