package main
import (
"fmt"
)
func Min(a int64, b int64) int64 {
if a <= b {
return a
}
return b
}
func main() {
var n, x int64
fmt.Scanf("%d %d", &n, &x)
a := make([]int64, n)
diff := make([]int64, n - 1)
for i := int64(0); i < n; i++ {
fmt.Scanf("%d", &a[i])
if i > 0 {
diff[i - 1] = a[i] / a[i - 1]
}
}
copyX := x
processedX := make([]int64, n)
for i := n - 1; i >= 0; i-- {
processedX[i] = copyX / a[i]
copyX -= processedX[i] * a[i]
}
dp := make([][]int64, n)
for i := int64(0); i < n; i++ {
dp[i] = make([]int64, 2)
}
dp[0][0] = processedX[0]
if n > 1 {
dp[0][1] = diff[0] - processedX[0]
}
for i := int64(1); i < n; i++ {
if i < n - 1 {
dp[i][0] = Min(
dp[i - 1][0] + processedX[i],
dp[i - 1][1] + processedX[i] + 1,
)
dp[i][1] = Min(
dp[i - 1][0] + diff[i] - processedX[i],
dp[i - 1][1] + diff[i] - processedX[i] - 1,
)
} else {
dp[i][0] = Min(
dp[i - 1][0] + processedX[i],
dp[i - 1][1] + processedX[i] + 1,
)
}
}
fmt.Println(dp[n - 1][0])
}