n, s = [int(_) for _ in input().split()]
m = [int(_) for _ in input().split()]
max = sum(m)
pocet=[0]*(2+max)
pocet[0]=1
max=0
for minca in m:
max += minca
for x in range(max, minca-1, -1):
pocet[x] += pocet[x-minca]
vysl = 0
if s <= max:
vysl = pocet[s]
print(vysl)
biwgcyA9IFtpbnQoXykgZm9yIF8gaW4gaW5wdXQoKS5zcGxpdCgpXQptID0gW2ludChfKSBmb3IgXyBpbiBpbnB1dCgpLnNwbGl0KCldIAptYXggPSBzdW0obSkgCnBvY2V0PVswXSooMittYXgpCnBvY2V0WzBdPTEKbWF4PTAKZm9yIG1pbmNhIGluIG06CgltYXggKz0gbWluY2EKCWZvciB4IGluIHJhbmdlKG1heCwgbWluY2EtMSwgLTEpOgoJCXBvY2V0W3hdICs9IHBvY2V0W3gtbWluY2FdCnZ5c2wgPSAwCmlmIHMgPD0gbWF4OgoJdnlzbCA9IHBvY2V0W3NdCnByaW50KHZ5c2wp