#include<bits/stdc++.h>
using namespace std;
int main()
{
int l,n,a[5001],b[5001],i,min,max,m,o;//m代表最长时间; o代表最短时间里的最大的;
cin>>l>>n;
for(i=0;i<n;i++){
cin>>a[i];
}
max=a[0];
min=a[0];
for(i=0;i<n;i++){
if(a[i+1]>a[i])max=a[i+1];
if(a[i+1]<a[i])min=a[i+1];//在坐标中找出最大值和最小值;
}
if((l-max)>=(min-1)){
m=l-min;
}
else{
m=max-1;//找出最大值和最小值哪个走出独木桥更慢;
}
for(i=0;i<n;i++){
if((a[i]-1)<(l-a[i])){
b[i]=a[i]-1;
}
if(a[i]-1>(l-a[i])){
b[i]=l-a[i];
}
}//利用数组b来记录每一个士兵走出独木桥的最短时间;
o=b[1];
for(i=0;i<n;i++){
if(b[i+1]>b[i])o=b[i+1];
}//每个士兵都要走出独木桥,找出所有人最短时间中的最大值;
cout<<o<<" "<<m;
return 0;
}