local mod = 998244353
local mfl = math.floor
local function bmul(x, y)
  local x0, y0 = x % 31596, y % 31596
  local x1, y1 = mfl(x / 31596), mfl(y / 31596)
  return (x1 * y1 * 62863 + (x1 * y0 + x0 * y1) * 31596 + x0 * y0) % mod
end

local function badd(x, y)
  return (x + y) % mod
end

local n, s = io.read("*n", "*n")
local a = {}
for i = 1, n do
  a[i] = io.read("*n")
end
local dp = {}
for i = 1, s + 1 do
  dp[i] = 0
end
dp[1] = 1
if a[n] <= s then
  dp[a[n] + 1] = 1
end
local ret = dp[s + 1]
for i = n - 1, 1, -1 do
  local av = a[i]
  dp[1] = badd(dp[1], 1)
  for j = s + 1 - av, 1, -1 do
    dp[j + av] = badd(dp[j + av], dp[j])
  end
  ret = badd(ret, dp[s + 1])
end
print(ret)
