#abc169f. [abc169_f]Knapsack for All Subsets

[abc169_f]Knapsack for All Subsets

Problem Statement

Given are a sequence of NN positive integers A1A_1, A2A_2, ldots\\ldots, ANA_N and another positive integer SS.
For a non-empty subset TT of the set 1,2,ldots,N\\{1, 2, \\ldots , N \\}, let us define f(T)f(T) as follows:

  • f(T)f(T) is the number of different non-empty subsets x1,x2,ldots,xk\\{x_1, x_2, \\ldots , x_k \\} of TT such that Ax1+Ax2+cdots+Axk=SA_{x_1}+A_{x_2}+\\cdots +A_{x_k} = S.

Find the sum of f(T)f(T) over all 2N12^N-1 subsets TT of 1,2,ldots,N\\{1, 2, \\ldots , N \\}. Since the sum can be enormous, print it modulo 998244353998244353.

Constraints

  • All values in input are integers.
  • 1leqNleq30001 \\leq N \\leq 3000
  • 1leqSleq30001 \\leq S \\leq 3000
  • 1leqAileq30001 \\leq A_i \\leq 3000

Input

Input is given from Standard Input in the following format:

NN SS A1A_1 A2A_2 ...... ANA_N

Output

Print the sum of f(T)f(T) modulo 998244353998244353.


Sample Input 1

3 4
2 2 4

Sample Output 1

6

For each TT, the value of f(T)f(T) is shown below. The sum of these values is 66.

  • f(1)=0f(\\{1\\}) = 0
  • f(2)=0f(\\{2\\}) = 0
  • f(3)=1f(\\{3\\}) = 1 (One subset 3\\{3\\} satisfies the condition.)
  • f(1,2)=1f(\\{1, 2\\}) = 1 (1,2\\{1, 2\\})
  • f(2,3)=1f(\\{2, 3\\}) = 1 (3\\{3\\})
  • f(1,3)=1f(\\{1, 3\\}) = 1 (3\\{3\\})
  • f(1,2,3)=2f(\\{1, 2, 3\\}) = 2 (1,2,3\\{1, 2\\}, \\{3\\})

Sample Input 2

5 8
9 9 9 9 9

Sample Output 2

0

Sample Input 3

10 10
3 1 4 1 5 9 2 6 5 3

Sample Output 3

3296