import java.util.*;
public class Main
{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int k=sc.nextInt();
int n=sc.nextInt();
int a[]=new int[n];
for(int i=0;i<n;i++)
a[i]=sc.nextInt();
int m=0;
for(int i=0;i<n-1;i++)
{
	if(i==0)
	{
		int t=a[i]-a[n-1]+k;
		m=Math.max(m,t);
	}
	else
	{
		m=Math.max(m,(a[i+1]-a[i]));
	}		
}
int z=m;
System.out.println(k-z);
}

} import java.util.*; util.* java public class Main
{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int k=sc.nextInt();
int n=sc.nextInt();
int a[]=new int[n];
for(int i=0;i<n;i++)
a[i]=sc.nextInt();
int m=0;
for(int i=0;i<n-1;i++)
{
	if(i==0)
	{
		int t=a[i]-a[n-1]+k;
		m=Math.max(m,t);
	}
	else
	{
		m=Math.max(m,(a[i+1]-a[i]));
	}		
}
int z=m;
System.out.println(k-z);
}

} Main public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int k=sc.nextInt();
int n=sc.nextInt();
int a[]=new int[n];
for(int i=0;i<n;i++)
a[i]=sc.nextInt();
int m=0;
for(int i=0;i<n-1;i++)
{
	if(i==0)
	{
		int t=a[i]-a[n-1]+k;
		m=Math.max(m,t);
	}
	else
	{
		m=Math.max(m,(a[i+1]-a[i]));
	}		
}
int z=m;
System.out.println(k-z);
} main {
Scanner sc=new Scanner(System.in);
int k=sc.nextInt();
int n=sc.nextInt();
int a[]=new int[n];
for(int i=0;i<n;i++)
a[i]=sc.nextInt();
int m=0;
for(int i=0;i<n-1;i++)
{
	if(i==0)
	{
		int t=a[i]-a[n-1]+k;
		m=Math.max(m,t);
	}
	else
	{
		m=Math.max(m,(a[i+1]-a[i]));
	}		
}
int z=m;
System.out.println(k-z);
} Scanner sc=new Scanner(System.in); sc new Scanner(System.in) int k=sc.nextInt(); k sc.nextInt() sc.nextInt sc int n=sc.nextInt(); n sc.nextInt() sc.nextInt sc int a[]=new int[n]; a new int[n] n for(int i=0;i<n;i++)
a[i]=sc.nextInt(); int i=0; int i=0; i 0 i<n i n i++ i++ i a[i]=sc.nextInt(); a[i]=sc.nextInt() a[i] a i sc.nextInt() sc.nextInt sc int m=0; m 0 for(int i=0;i<n-1;i++)
{
	if(i==0)
	{
		int t=a[i]-a[n-1]+k;
		m=Math.max(m,t);
	}
	else
	{
		m=Math.max(m,(a[i+1]-a[i]));
	}		
} int i=0; int i=0; i 0 i<n-1 i n-1 n 1 i++ i++ i {
	if(i==0)
	{
		int t=a[i]-a[n-1]+k;
		m=Math.max(m,t);
	}
	else
	{
		m=Math.max(m,(a[i+1]-a[i]));
	}		
} {
	if(i==0)
	{
		int t=a[i]-a[n-1]+k;
		m=Math.max(m,t);
	}
	else
	{
		m=Math.max(m,(a[i+1]-a[i]));
	}		
} if(i==0)
	{
		int t=a[i]-a[n-1]+k;
		m=Math.max(m,t);
	}
	else
	{
		m=Math.max(m,(a[i+1]-a[i]));
	} i==0 i 0 {
		int t=a[i]-a[n-1]+k;
		m=Math.max(m,t);
	} int t=a[i]-a[n-1]+k; t a[i]-a[n-1]+k a[i]-a[n-1] a[i] a i a[n-1] a n-1 n 1 k m=Math.max(m,t) m Math.max(m,t) Math.max Math m t {
		m=Math.max(m,(a[i+1]-a[i]));
	} m=Math.max(m,(a[i+1]-a[i])) m Math.max(m,(a[i+1]-a[i])) Math.max Math m (a[i+1]-a[i]) a[i+1] a i+1 i 1 a[i] a i int z=m; z m System.out.println(k-z) System.out.println System.out System System.out k-z k z String[] args args public class Main
{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int k=sc.nextInt();
int n=sc.nextInt();
int a[]=new int[n];
for(int i=0;i<n;i++)
a[i]=sc.nextInt();
int m=0;
for(int i=0;i<n-1;i++)
{
	if(i==0)
	{
		int t=a[i]-a[n-1]+k;
		m=Math.max(m,t);
	}
	else
	{
		m=Math.max(m,(a[i+1]-a[i]));
	}		
}
int z=m;
System.out.println(k-z);
}

} public class Main
{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int k=sc.nextInt();
int n=sc.nextInt();
int a[]=new int[n];
for(int i=0;i<n;i++)
a[i]=sc.nextInt();
int m=0;
for(int i=0;i<n-1;i++)
{
	if(i==0)
	{
		int t=a[i]-a[n-1]+k;
		m=Math.max(m,t);
	}
	else
	{
		m=Math.max(m,(a[i+1]-a[i]));
	}		
}
int z=m;
System.out.println(k-z);
}

} Main
import java.util.*;
public class Main
{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int k=sc.nextInt();
int n=sc.nextInt();
int a[]=new int[n];
for(int i=0;i<n;i++)
a[i]=sc.nextInt();
int m=0;
for(int i=0;i<n-1;i++)
{
	if(i==0)
	{
		int t=a[i]-a[n-1]+k;
		m=Math.max(m,t);
	}
	else
	{
		m=Math.max(m,(a[i+1]-a[i]));
	}		
}
int z=m;
System.out.println(k-z);
}

}