atcoder#ABC169F. [ABC169F] Knapsack for All Subsets

[ABC169F] Knapsack for All Subsets

Score : 600600 points

Problem Statement

Given are a sequence of NN positive integers A1A_1, A2A_2, \ldots, ANA_N and another positive integer SS. For a non-empty subset TT of the set {1,2,,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,,xk}\{x_1, x_2, \ldots , x_k \} of TT such that Ax1+Ax2++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,,N}\{1, 2, \ldots , N \}. Since the sum can be enormous, print it modulo 998244353998244353.

Constraints

  • All values in input are integers.
  • 1N30001 \leq N \leq 3000
  • 1S30001 \leq S \leq 3000
  • 1Ai30001 \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.

3 4
2 2 4
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\})
5 8
9 9 9 9 9
0
10 10
3 1 4 1 5 9 2 6 5 3
3296