def main():
N, M = map(int, input().split())
AS = list(map(int, input().split()))
AS.append(0)
AS.append(N + 1)
AS.sort()
DS = []
for i in range(M + 1):
d = AS[i + 1] - AS[i]
if d > 1:
DS.append(d - 1)
if not DS:
print(0)
return
k = min(DS)
ret = 0
for d in DS:
ret += (d - 1) // k + 1
print(ret)
def solve(N, M, AS, BS):
if M > N:
N, M = M, N
AS, BS = BS, AS
table = list(range(N + 1))
for m in range(1, M + 1):
newtable = [0] * (N + 1)
prev = newtable[0] = m
for n in range(1, N + 1):
if AS[-n] == BS[-m]:
d = 0
else:
d = 1
prev = newtable[n] = min(
prev + 1,
table[n - 1] + d,
table[n] + 1
)
table = newtable
return table[-1]