object Main extends App {
  val sc = new java.util.Scanner(System.in)
  val n, s = sc.nextInt()
  val a = IndexedSeq.fill(n)(sc.nextInt())

  val mod = 998244353
  def plus(a: Long, b: Long): Long = (a + b) % mod
  def times(a: Long, b: Long): Long = (a * b) % mod

  def pow(a: Long, n: Int, res: Long = 1): Long = {
    if (n == 0) {
      res
    } else if ((n&1) == 0) {
      pow(times(a,a), n >> 1, res)
    } else {
      pow(times(a,a), n >> 1, times(res,a))
    }
  }

  val dp = Array.fill((n+1) * (s+1))(-1L)
  dp(0) = pow(2, n)
  for (j <- 1 to s) dp(j) = 0

  def solve(i: Int, j: Int): Long = {
    if (dp(i * (s+1) + j) != -1L) {
      dp(i * (s+1) + j)
    } else {
      val ans = if (j >= a(i-1)) {
        plus(solve(i-1, j), times(solve(i-1, j - a(i-1)), 499122177))
      } else {
        solve(i-1, j)
      }
      dp(i * (s+1) + j) = ans
      ans
    }
  }

  println(solve(n,s))
}
