let m = 998244353
let ( +^ ) x y = (x + y) mod m
let ( *^ ) x y = (x * y) mod m

let rec power ( * ) e m n =
  if n <= 0 then e
  else power ( * ) (if n land 1 = 0 then e else m * e) (m * m) (n lsr 1)
let inv2 = power ( *^ ) 1 2 (m - 2)

let () = Scanf.scanf "%d %d\n" @@ fun n s ->
  let as_ = Array.init n @@ fun _ -> Scanf.scanf "%d " @@ fun a -> a in
  let dp = Array.make (s + 1) 0 in
  dp.(0) <- power ( *^ ) 1 2 n;
  Array.iter (fun a ->
    for i = s downto a do
      dp.(i) <- dp.(i) +^ inv2 *^ dp.(i - a)
    done) as_;
  Printf.printf "%d\n" dp.(s)
