import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
	    Scanner scanner = new Scanner(System.in);

	    int K = Integer.parseInt(scanner.next());
	    int N = Integer.parseInt(scanner.next());
	    int A[] = new int[N];
	    
	    for (int i=0; i<N; i++) {
	    	A[i] = Integer.parseInt(scanner.next());
	    }
	    
	    int max = K - (A[N-1] - A[0]);
	    for (int i=0; i<N-1; i++) {
	        if (max < A[i+1] - A[i]) max=A[i+1] - A[i];
	    }
        System.out.print(K-max);
	}

} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
	    Scanner scanner = new Scanner(System.in);

	    int K = Integer.parseInt(scanner.next());
	    int N = Integer.parseInt(scanner.next());
	    int A[] = new int[N];
	    
	    for (int i=0; i<N; i++) {
	    	A[i] = Integer.parseInt(scanner.next());
	    }
	    
	    int max = K - (A[N-1] - A[0]);
	    for (int i=0; i<N-1; i++) {
	        if (max < A[i+1] - A[i]) max=A[i+1] - A[i];
	    }
        System.out.print(K-max);
	}

} Main public static void main(String[] args) {
	    Scanner scanner = new Scanner(System.in);

	    int K = Integer.parseInt(scanner.next());
	    int N = Integer.parseInt(scanner.next());
	    int A[] = new int[N];
	    
	    for (int i=0; i<N; i++) {
	    	A[i] = Integer.parseInt(scanner.next());
	    }
	    
	    int max = K - (A[N-1] - A[0]);
	    for (int i=0; i<N-1; i++) {
	        if (max < A[i+1] - A[i]) max=A[i+1] - A[i];
	    }
        System.out.print(K-max);
	} main {
	    Scanner scanner = new Scanner(System.in);

	    int K = Integer.parseInt(scanner.next());
	    int N = Integer.parseInt(scanner.next());
	    int A[] = new int[N];
	    
	    for (int i=0; i<N; i++) {
	    	A[i] = Integer.parseInt(scanner.next());
	    }
	    
	    int max = K - (A[N-1] - A[0]);
	    for (int i=0; i<N-1; i++) {
	        if (max < A[i+1] - A[i]) max=A[i+1] - A[i];
	    }
        System.out.print(K-max);
	} Scanner scanner = new Scanner(System.in); scanner new Scanner(System.in) int K = Integer.parseInt(scanner.next()); K Integer.parseInt(scanner.next()) Integer.parseInt Integer scanner.next() scanner.next scanner int N = Integer.parseInt(scanner.next()); N Integer.parseInt(scanner.next()) Integer.parseInt Integer scanner.next() scanner.next scanner int A[] = new int[N]; A new int[N] N for (int i=0; i<N; i++) {
	    	A[i] = Integer.parseInt(scanner.next());
	    } int i=0; int i=0; i 0 i<N i N i++ i++ i {
	    	A[i] = Integer.parseInt(scanner.next());
	    } {
	    	A[i] = Integer.parseInt(scanner.next());
	    } A[i] = Integer.parseInt(scanner.next()) A[i] A i Integer.parseInt(scanner.next()) Integer.parseInt Integer scanner.next() scanner.next scanner int max = K - (A[N-1] - A[0]); max K - (A[N-1] - A[0]) K (A[N-1] - A[0]) A[N-1] A N-1 N 1 A[0] A 0 for (int i=0; i<N-1; i++) {
	        if (max < A[i+1] - A[i]) max=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 (max < A[i+1] - A[i]) max=A[i+1] - A[i];
	    } {
	        if (max < A[i+1] - A[i]) max=A[i+1] - A[i];
	    } if (max < A[i+1] - A[i]) max=A[i+1] - A[i]; max < A[i+1] - A[i] max A[i+1] - A[i] A[i+1] A i+1 i 1 A[i] A i max=A[i+1] - A[i] max A[i+1] - A[i] A[i+1] A i+1 i 1 A[i] A i System.out.print(K-max) System.out.print 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 = Integer.parseInt(scanner.next());
	    int N = Integer.parseInt(scanner.next());
	    int A[] = new int[N];
	    
	    for (int i=0; i<N; i++) {
	    	A[i] = Integer.parseInt(scanner.next());
	    }
	    
	    int max = K - (A[N-1] - A[0]);
	    for (int i=0; i<N-1; i++) {
	        if (max < A[i+1] - A[i]) max=A[i+1] - A[i];
	    }
        System.out.print(K-max);
	}

} public class Main {

	public static void main(String[] args) {
	    Scanner scanner = new Scanner(System.in);

	    int K = Integer.parseInt(scanner.next());
	    int N = Integer.parseInt(scanner.next());
	    int A[] = new int[N];
	    
	    for (int i=0; i<N; i++) {
	    	A[i] = Integer.parseInt(scanner.next());
	    }
	    
	    int max = K - (A[N-1] - A[0]);
	    for (int i=0; i<N-1; i++) {
	        if (max < A[i+1] - A[i]) max=A[i+1] - A[i];
	    }
        System.out.print(K-max);
	}

} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
	    Scanner scanner = new Scanner(System.in);

	    int K = Integer.parseInt(scanner.next());
	    int N = Integer.parseInt(scanner.next());
	    int A[] = new int[N];
	    
	    for (int i=0; i<N; i++) {
	    	A[i] = Integer.parseInt(scanner.next());
	    }
	    
	    int max = K - (A[N-1] - A[0]);
	    for (int i=0; i<N-1; i++) {
	        if (max < A[i+1] - A[i]) max=A[i+1] - A[i];
	    }
        System.out.print(K-max);
	}

}