import Data.Array
import Data.Bool
import Data.List

main = interact $ show . sol . map read . words

sol :: [Int] -> Int
sol (n:s:as) = dp!(n,s)
  where
  ar = listArray (1,n) $ sort as
  bs = ((0,0),(n,s))
  dp = listArray bs $ f <$> range bs
  f (0,j) = bool 0 1 (j==0)
  f (i,0) = p2 i
  f (i,j) = (`mod` p) $ 2*dp!(i-1,j) + bool 0 (dp!(i-1,j')) (inRange bs (i-1,j'))
    where j' = j-ar!i

p = 998244353 :: Int

p2 :: Int -> Int
p2 x
  | x == 0    = 1
  | odd x     = 2*r `mod` p
  | otherwise = r
  where
  q = p2 (x `div` 2)
  r = q*q `mod` p