n, x = input().split()

n = int(n)

x = int(x)

m = []

i_min = 0

result = 0

#リストに値を読み込み

for i in range(n):

  m.append(int(eval(input())))

#一個ずつ作る

for i in range(len(m)):

  x = x - m[i]

  result = result + 1

#最小量の粉量を確定

for i in range(len(m)):

  if m[i_min] > m[i]:

    i_min = i

#i_minを作れるだけ作る

for i in range(x):

  if x >= m[i_min]:

    x = x - m[i_min]

    result = result + 1

  else:

    break

#結果の表示

print(result)
#定義

n, x = input().split()

n = int(n)

x = int(x)

m = []

i_min = 0

gokei = 0

#リストに数値を読み込み

for i in range(n):

  m.append(int(eval(input())))

#一個ずつの合計

for i in range(len(m)):

  gokei = gokei + m[i]

  if m[i_min] > m[i]:

    i_min = i

#残量を出す

x = x - gokei

print((n + int(x/m[i_min])))
n, x = input().split()
n = int(n)
x = int(x)
m = []
i_min = 0
result = 0
# リストに値を読み込み
for i in range(n):
    m.append(int(eval(input())))
# 一個ずつ作る
for i in range(len(m)):
    x = x - m[i]
    result = result + 1
# 最小量の粉量を確定
for i in range(len(m)):
    if m[i_min] > m[i]:
        i_min = i
# i_minを作れるだけ作る
for i in range(x):
    if x >= m[i_min]:
        x = x - m[i_min]
        result = result + 1
    else:
        break
# 結果の表示
print(result)

# 定義
n, x = input().split()
n = int(n)
x = int(x)
m = []
i_min = 0
gokei = 0
# リストに数値を読み込み
for i in range(n):
    m.append(int(eval(input())))
# 一個ずつの合計
for i in range(len(m)):
    gokei = gokei + m[i]
    if m[i_min] > m[i]:
        i_min = i
# 残量を出す
x = x - gokei
print((n + int(x / m[i_min])))

+# 定義 -result = 0 -# リストに値を読み込み +gokei = 0 +# リストに数値を読み込み -# 一個ずつ作る +# 一個ずつの合計 -    x = x - m[i] -    result = result + 1 -# 最小量の粉量を確定 -for i in range(len(m)): +    gokei = gokei + m[i] -# i_minを作れるだけ作る -for i in range(x): -    if x >= m[i_min]: -        x = x - m[i_min] -        result = result + 1 -    else: -        break -# 結果の表示 -print(result) +# 残量を出す +x = x - gokei +print((n + int(x / m[i_min])))