import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int K = scanner.nextInt();
		int N = scanner.nextInt();
		List<Integer> A = new ArrayList<Integer>();
		for(int i =0; i<N; i++) {
			A.add(scanner.nextInt());
		}
		Collections.sort(A);
		List<Integer> B = new ArrayList<Integer>();
			for(int i=0; i<N;i++) {
				if(i+1 < N) {
					B.add(Math.abs(A.get(i)-A.get(i+1)));
				}else {
					B.add(K-Math.abs(A.get(i)-A.get(0)));
				}
			}
			int Max = B.get(0);
			for(int i = 1 ; i < B.size(); i++){
		        if(Max < B.get(i)){
		            Max = B.get(i);
		            }
		        }
		System.out.println(K-Max);
		
		
	}
} import java.util.ArrayList; ArrayList java.util import java.util.Collections; Collections java.util import java.util.List; List java.util import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int K = scanner.nextInt();
		int N = scanner.nextInt();
		List<Integer> A = new ArrayList<Integer>();
		for(int i =0; i<N; i++) {
			A.add(scanner.nextInt());
		}
		Collections.sort(A);
		List<Integer> B = new ArrayList<Integer>();
			for(int i=0; i<N;i++) {
				if(i+1 < N) {
					B.add(Math.abs(A.get(i)-A.get(i+1)));
				}else {
					B.add(K-Math.abs(A.get(i)-A.get(0)));
				}
			}
			int Max = B.get(0);
			for(int i = 1 ; i < B.size(); i++){
		        if(Max < B.get(i)){
		            Max = B.get(i);
		            }
		        }
		System.out.println(K-Max);
		
		
	}
} Main public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int K = scanner.nextInt();
		int N = scanner.nextInt();
		List<Integer> A = new ArrayList<Integer>();
		for(int i =0; i<N; i++) {
			A.add(scanner.nextInt());
		}
		Collections.sort(A);
		List<Integer> B = new ArrayList<Integer>();
			for(int i=0; i<N;i++) {
				if(i+1 < N) {
					B.add(Math.abs(A.get(i)-A.get(i+1)));
				}else {
					B.add(K-Math.abs(A.get(i)-A.get(0)));
				}
			}
			int Max = B.get(0);
			for(int i = 1 ; i < B.size(); i++){
		        if(Max < B.get(i)){
		            Max = B.get(i);
		            }
		        }
		System.out.println(K-Max);
		
		
	} main {
		Scanner scanner = new Scanner(System.in);
		int K = scanner.nextInt();
		int N = scanner.nextInt();
		List<Integer> A = new ArrayList<Integer>();
		for(int i =0; i<N; i++) {
			A.add(scanner.nextInt());
		}
		Collections.sort(A);
		List<Integer> B = new ArrayList<Integer>();
			for(int i=0; i<N;i++) {
				if(i+1 < N) {
					B.add(Math.abs(A.get(i)-A.get(i+1)));
				}else {
					B.add(K-Math.abs(A.get(i)-A.get(0)));
				}
			}
			int Max = B.get(0);
			for(int i = 1 ; i < B.size(); i++){
		        if(Max < B.get(i)){
		            Max = B.get(i);
		            }
		        }
		System.out.println(K-Max);
		
		
	} Scanner scanner = new Scanner(System.in); scanner new Scanner(System.in) int K = scanner.nextInt(); K scanner.nextInt() scanner.nextInt scanner int N = scanner.nextInt(); N scanner.nextInt() scanner.nextInt scanner List<Integer> A = new ArrayList<Integer>(); A new ArrayList<Integer>() for(int i =0; i<N; i++) {
			A.add(scanner.nextInt());
		} int i =0; int i =0; i 0 i<N i N i++ i++ i {
			A.add(scanner.nextInt());
		} {
			A.add(scanner.nextInt());
		} A.add(scanner.nextInt()) A.add A scanner.nextInt() scanner.nextInt scanner Collections.sort(A) Collections.sort Collections A List<Integer> B = new ArrayList<Integer>(); B new ArrayList<Integer>() for(int i=0; i<N;i++) {
				if(i+1 < N) {
					B.add(Math.abs(A.get(i)-A.get(i+1)));
				}else {
					B.add(K-Math.abs(A.get(i)-A.get(0)));
				}
			} int i=0; int i=0; i 0 i<N i N i++ i++ i {
				if(i+1 < N) {
					B.add(Math.abs(A.get(i)-A.get(i+1)));
				}else {
					B.add(K-Math.abs(A.get(i)-A.get(0)));
				}
			} {
				if(i+1 < N) {
					B.add(Math.abs(A.get(i)-A.get(i+1)));
				}else {
					B.add(K-Math.abs(A.get(i)-A.get(0)));
				}
			} if(i+1 < N) {
					B.add(Math.abs(A.get(i)-A.get(i+1)));
				}else {
					B.add(K-Math.abs(A.get(i)-A.get(0)));
				} i+1 < N i+1 i 1 N {
					B.add(Math.abs(A.get(i)-A.get(i+1)));
				} B.add(Math.abs(A.get(i)-A.get(i+1))) B.add B Math.abs(A.get(i)-A.get(i+1)) Math.abs Math A.get(i)-A.get(i+1) A.get(i) A.get A i A.get(i+1) A.get A i+1 i 1 {
					B.add(K-Math.abs(A.get(i)-A.get(0)));
				} B.add(K-Math.abs(A.get(i)-A.get(0))) B.add B K-Math.abs(A.get(i)-A.get(0)) K Math.abs(A.get(i)-A.get(0)) Math.abs Math A.get(i)-A.get(0) A.get(i) A.get A i A.get(0) A.get A 0 int Max = B.get(0); Max B.get(0) B.get B 0 for(int i = 1 ; i < B.size(); i++){
		        if(Max < B.get(i)){
		            Max = B.get(i);
		            }
		        } int i = 1 ; int i = 1 ; i 1 i < B.size() i B.size() B.size B i++ i++ i {
		        if(Max < B.get(i)){
		            Max = B.get(i);
		            }
		        } {
		        if(Max < B.get(i)){
		            Max = B.get(i);
		            }
		        } if(Max < B.get(i)){
		            Max = B.get(i);
		            } Max < B.get(i) Max B.get(i) B.get B i {
		            Max = B.get(i);
		            } Max = B.get(i) Max B.get(i) B.get B i System.out.println(K-Max) System.out.println System.out System System.out K-Max K Max String[] args args public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int K = scanner.nextInt();
		int N = scanner.nextInt();
		List<Integer> A = new ArrayList<Integer>();
		for(int i =0; i<N; i++) {
			A.add(scanner.nextInt());
		}
		Collections.sort(A);
		List<Integer> B = new ArrayList<Integer>();
			for(int i=0; i<N;i++) {
				if(i+1 < N) {
					B.add(Math.abs(A.get(i)-A.get(i+1)));
				}else {
					B.add(K-Math.abs(A.get(i)-A.get(0)));
				}
			}
			int Max = B.get(0);
			for(int i = 1 ; i < B.size(); i++){
		        if(Max < B.get(i)){
		            Max = B.get(i);
		            }
		        }
		System.out.println(K-Max);
		
		
	}
} public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int K = scanner.nextInt();
		int N = scanner.nextInt();
		List<Integer> A = new ArrayList<Integer>();
		for(int i =0; i<N; i++) {
			A.add(scanner.nextInt());
		}
		Collections.sort(A);
		List<Integer> B = new ArrayList<Integer>();
			for(int i=0; i<N;i++) {
				if(i+1 < N) {
					B.add(Math.abs(A.get(i)-A.get(i+1)));
				}else {
					B.add(K-Math.abs(A.get(i)-A.get(0)));
				}
			}
			int Max = B.get(0);
			for(int i = 1 ; i < B.size(); i++){
		        if(Max < B.get(i)){
		            Max = B.get(i);
		            }
		        }
		System.out.println(K-Max);
		
		
	}
} Main
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int K = scanner.nextInt();
		int N = scanner.nextInt();
		List<Integer> A = new ArrayList<Integer>();
		for(int i =0; i<N; i++) {
			A.add(scanner.nextInt());
		}
		Collections.sort(A);
		List<Integer> B = new ArrayList<Integer>();
			for(int i=0; i<N;i++) {
				if(i+1 < N) {
					B.add(Math.abs(A.get(i)-A.get(i+1)));
				}else {
					B.add(K-Math.abs(A.get(i)-A.get(0)));
				}
			}
			int Max = B.get(0);
			for(int i = 1 ; i < B.size(); i++){
		        if(Max < B.get(i)){
		            Max = B.get(i);
		            }
		        }
		System.out.println(K-Max);
		
		
	}
}
