#define _DEBUG
#include "bits/stdc++.h"
#define CHOOSE(a) CHOOSE2 a
#define CHOOSE2(a0,a1,a2,a3,a4,x,...) x
#define debug_1(x1) cout<<#x1<<": "<<x1<<endl
#define debug_2(x1,x2) cout<<#x1<<": "<<x1<<", "#x2<<": "<<x2<<endl
#define debug_3(x1,x2,x3) cout<<#x1<<": "<<x1<<", "#x2<<": "<<x2<<", "#x3<<": "<<x3<<endl
#define debug_4(x1,x2,x3,x4) cout<<#x1<<": "<<x1<<", "#x2<<": "<<x2<<", "#x3<<": "<<x3<<", "#x4<<": "<<x4<<endl
#define debug_5(x1,x2,x3,x4,x5) cout<<#x1<<": "<<x1<<", "#x2<<": "<<x2<<", "#x3<<": "<<x3<<", "#x4<<": "<<x4<<", "#x5<<": "<<x5<<endl
#ifdef _DEBUG
#define debug(...) CHOOSE((__VA_ARGS__,debug_5,debug_4,debug_3,debug_2,debug_1,~))(__VA_ARGS__)
#else
#define debug(...)
#endif
#define rep(index,num) for(int index=0;index<(int)num;index++)
#define rep1(index,num) for(int index=1;index<=(int)num;index++)
#define brep(index,num) for(int index=(int)num-1;index>=0;index--)
#define brep1(index,num) for(int index=(int)num;index>0;index--)
#define scan(argument) cin>>argument
#define prin(argument) cout<<argument<<endl
#define kaigyo cout<<endl
#define eps 1e-7
#define mp(a1,a2) make_pair(a1,a2)
#define ALL(a) (a).begin(),(a).end()
#define rALL(a) (a).rbegin(),(a).rend()
#define puba(a) emplace_back((a))
typedef long long ll;
typedef long double ld;
using namespace std;
typedef pair<ll,ll> pll;
typedef pair<int,int> pint;
typedef vector<int> vint;
typedef vector<ll> vll;
typedef vector<pint> vpint;
typedef vector<pll> vpll;
template<class T> bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T> bool chmin(T &a, const T &b) { if (a>b) { a=b; return 1; } return 0; }
ll INFl=(ll)1e+18+1;
int INF=1e+9+1;
int main(){
	ll N,M,A[200001];
	scan(N>>M);
	if(M==0){
		prin(1);
		return 0;
	}
	else if(M==N){
		prin(0);
		return 0;
	}
	rep(i,M){
		scan(A[i]);
	}
	sort(A,A+M);
	vll sa;
	if(A[0]!=1) sa.puba(A[0]-1);
	rep(i,M-1){
	//	debug(i,A[i]);
		if(A[i+1]-A[i]>=2){
			sa.puba(A[i+1]-A[i]-1);
		}
	}
	//debug(A[M-1]);
	if(A[M-1]!=N) sa.puba(N-A[M-1]);
	sort(ALL(sa));
	ll K=sa[0];
	//debug(K);
	ll ans=0;
	for(const auto& s:sa){
	//	debug(s);
		ans+=s/K+(s%K!=0);
	}
	prin(ans);
	return 0;
}

#include <bits/stdc++.h>
using namespace std;

int main() {
  int N;
  cin >> N;
  
  int count = 0;
  
  int X;
  double A = 1.0000/3.000;
  X = pow(N,A)+0.00001;
  
  int Y,Z;
  
  for(int i = 0; i < X ;i++){
    Y = sqrt(N/(i+1));
    //cout << Y << endl;
    for(int j = i; j < Y ;j++){
      Z = N/(i+1)/(j+1);
      //cout << i << "F" << j << "F"<<  Z << endl;
      for(int k = j;k < Z ; k++){
        //cout << i+1 << " " << j+1 << " " << k+1 << endl;
        if(i!=j && j!=k && k!=i)count +=6;
        else if(i==j && j==k)count++;
        else count +=3;        
      }
      
    }
  }   
  cout<< count << endl;
}