import java.util.*;


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

 import java.util.*; util.* java class Main{
	public static void main(String args[]){
		
		Scanner sc=new Scanner(System.in);
		
		int k=sc.nextInt();
		int n=sc.nextInt();
		
		if(n==1){
			System.out.println(k);
			System.exit(0);
		}
		
		int a[]=new int[n];
		
		for(int i=0;i<n;i++){
			a[i]=sc.nextInt();
		}
		
		int max=0;
		for(int i=1;i<n;i++){
			if(i==n-1){
				if(max<k-a[i]+a[0])max=k-a[i]+a[0];
			}
			if(max<a[i]-a[i-1])max=a[i]-a[i-1];
		}
		
		System.out.println(k-max);
		
		
	}
} Main public static void main(String args[]){
		
		Scanner sc=new Scanner(System.in);
		
		int k=sc.nextInt();
		int n=sc.nextInt();
		
		if(n==1){
			System.out.println(k);
			System.exit(0);
		}
		
		int a[]=new int[n];
		
		for(int i=0;i<n;i++){
			a[i]=sc.nextInt();
		}
		
		int max=0;
		for(int i=1;i<n;i++){
			if(i==n-1){
				if(max<k-a[i]+a[0])max=k-a[i]+a[0];
			}
			if(max<a[i]-a[i-1])max=a[i]-a[i-1];
		}
		
		System.out.println(k-max);
		
		
	} main {
		
		Scanner sc=new Scanner(System.in);
		
		int k=sc.nextInt();
		int n=sc.nextInt();
		
		if(n==1){
			System.out.println(k);
			System.exit(0);
		}
		
		int a[]=new int[n];
		
		for(int i=0;i<n;i++){
			a[i]=sc.nextInt();
		}
		
		int max=0;
		for(int i=1;i<n;i++){
			if(i==n-1){
				if(max<k-a[i]+a[0])max=k-a[i]+a[0];
			}
			if(max<a[i]-a[i-1])max=a[i]-a[i-1];
		}
		
		System.out.println(k-max);
		
		
	} 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 if(n==1){
			System.out.println(k);
			System.exit(0);
		} n==1 n 1 {
			System.out.println(k);
			System.exit(0);
		} System.out.println(k) System.out.println System.out System System.out k System.exit(0) System.exit System 0 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]=sc.nextInt() a[i] a i sc.nextInt() sc.nextInt sc int max=0; max 0 for(int i=1;i<n;i++){
			if(i==n-1){
				if(max<k-a[i]+a[0])max=k-a[i]+a[0];
			}
			if(max<a[i]-a[i-1])max=a[i]-a[i-1];
		} int i=1; int i=1; i 1 i<n i n i++ i++ i {
			if(i==n-1){
				if(max<k-a[i]+a[0])max=k-a[i]+a[0];
			}
			if(max<a[i]-a[i-1])max=a[i]-a[i-1];
		} {
			if(i==n-1){
				if(max<k-a[i]+a[0])max=k-a[i]+a[0];
			}
			if(max<a[i]-a[i-1])max=a[i]-a[i-1];
		} if(i==n-1){
				if(max<k-a[i]+a[0])max=k-a[i]+a[0];
			} i==n-1 i n-1 n 1 {
				if(max<k-a[i]+a[0])max=k-a[i]+a[0];
			} if(max<k-a[i]+a[0])max=k-a[i]+a[0]; max<k-a[i]+a[0] max k-a[i]+a[0] k-a[i] k a[i] a i a[0] a 0 max=k-a[i]+a[0] max k-a[i]+a[0] k-a[i] k a[i] a i a[0] a 0 if(max<a[i]-a[i-1])max=a[i]-a[i-1]; max<a[i]-a[i-1] max a[i]-a[i-1] a[i] a i a[i-1] a i-1 i 1 max=a[i]-a[i-1] max a[i]-a[i-1] a[i] a i a[i-1] a i-1 i 1 System.out.println(k-max) System.out.println System.out System System.out k-max k max String args[] args
import java.util.*;


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


