#include <bits/stdc++.h>
#define rep(i,n) for (int i = 0; i < (n); ++i)
#define rep2(i,k,n) for (int i = k; i < (n); ++i)
#define ll unsigned long long
using namespace std;
using P = pair<int,int>;

int ceil(int x, int d) {
    return (x+d-1) / d;
}

void solve() {
    int n, m;
    cin >> n >> m;
    vector<int> A;
    A.push_back(0);
    rep(i,m) {
        int a;
        cin >> a;
        A.push_back(a);
    }
    A.push_back(n+1);
    sort(A.begin(), A.end());

    int hanko = n;
    vector<int> haba;
    rep(i,A.size()-1) {
        int w = A[i+1] - A[i] - 1;
        if (w == 0) continue;
        else {
            hanko = min(hanko, w);
            haba.push_back(w);
        }
    }

    int ans = 0;
    for (int x : haba) {
        ans += ceil(x, hanko);
    }
    cout << ans << endl;

}

int main() {
    solve();
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
#define ll long long int
const ll inf=pow(2,31)-1;
int main()
{
	int n,m;cin>>n>>m;
	int k=99999999,ans=0,a[m+5];a[0]=0;
	for(int i=1;i<=m;i++) cin>>a[i];
	sort(a+1,a+1+m);
	a[m+1]=n+1;
	for(int i=1;i<=m+1;i++)
	{
		if(a[i]-a[i-1]>1)
		{
			k=min(k,a[i]-a[i-1]-1);
		}
	}
	//cout<<k<<endl;
	for(int i=1;i<=m+1;i++)
	{
		int t=a[i]-a[i-1]-1;
		ans+=t/k;
		if(t%k) ans++;
	}
	if(m==0) 
	{
		cout<<1<<endl;
		return 0;
	}
	cout<<ans<<endl; 
	return 0;
}
