import java.util.Scanner;
import java.util.Arrays;

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]; int[] B = new int[N];
        for(int i=0;i <N;i++) A[i]=sc.nextInt();
        Arrays.sort(A);
        for(int i=0;i<N-1;i++) B[i]=A[i+1]-A[i];
        B[N-1] = A[0]+K-A[N-1];
        int maximum = B[0];
        for(int i=0;i<B.length;i++){ if(maximum<B[i]) maximum = B[i];}
        int sol = K-maximum;
        System.out.print(sol);
    }
} import java.util.Scanner; Scanner java.util import java.util.Arrays; Arrays 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]; int[] B = new int[N];
        for(int i=0;i <N;i++) A[i]=sc.nextInt();
        Arrays.sort(A);
        for(int i=0;i<N-1;i++) B[i]=A[i+1]-A[i];
        B[N-1] = A[0]+K-A[N-1];
        int maximum = B[0];
        for(int i=0;i<B.length;i++){ if(maximum<B[i]) maximum = B[i];}
        int sol = K-maximum;
        System.out.print(sol);
    }
} 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]; int[] B = new int[N];
        for(int i=0;i <N;i++) A[i]=sc.nextInt();
        Arrays.sort(A);
        for(int i=0;i<N-1;i++) B[i]=A[i+1]-A[i];
        B[N-1] = A[0]+K-A[N-1];
        int maximum = B[0];
        for(int i=0;i<B.length;i++){ if(maximum<B[i]) maximum = B[i];}
        int sol = K-maximum;
        System.out.print(sol);
    } main {
        Scanner sc = new Scanner(System.in); int K = sc.nextInt(); int N = sc.nextInt();
        int[] A = new int[N]; int[] B = new int[N];
        for(int i=0;i <N;i++) A[i]=sc.nextInt();
        Arrays.sort(A);
        for(int i=0;i<N-1;i++) B[i]=A[i+1]-A[i];
        B[N-1] = A[0]+K-A[N-1];
        int maximum = B[0];
        for(int i=0;i<B.length;i++){ if(maximum<B[i]) maximum = B[i];}
        int sol = K-maximum;
        System.out.print(sol);
    } 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 int[] B = new int[N]; B 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 Arrays.sort(A) Arrays.sort Arrays A for(int i=0;i<N-1;i++) B[i]=A[i+1]-A[i]; int i=0; int i=0; i 0 i<N-1 i N-1 N 1 i++ i++ i B[i]=A[i+1]-A[i]; B[i]=A[i+1]-A[i] B[i] B i A[i+1]-A[i] A[i+1] A i+1 i 1 A[i] A i B[N-1] = A[0]+K-A[N-1] B[N-1] B N-1 N 1 A[0]+K-A[N-1] A[0]+K A[0] A 0 K A[N-1] A N-1 N 1 int maximum = B[0]; maximum B[0] B 0 for(int i=0;i<B.length;i++){ if(maximum<B[i]) maximum = B[i];} int i=0; int i=0; i 0 i<B.length i B.length B B.length i++ i++ i { if(maximum<B[i]) maximum = B[i];} { if(maximum<B[i]) maximum = B[i];} if(maximum<B[i]) maximum = B[i]; maximum<B[i] maximum B[i] B i maximum = B[i] maximum B[i] B i int sol = K-maximum; sol K-maximum K maximum System.out.print(sol) System.out.print System.out System System.out sol 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]; int[] B = new int[N];
        for(int i=0;i <N;i++) A[i]=sc.nextInt();
        Arrays.sort(A);
        for(int i=0;i<N-1;i++) B[i]=A[i+1]-A[i];
        B[N-1] = A[0]+K-A[N-1];
        int maximum = B[0];
        for(int i=0;i<B.length;i++){ if(maximum<B[i]) maximum = B[i];}
        int sol = K-maximum;
        System.out.print(sol);
    }
} 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]; int[] B = new int[N];
        for(int i=0;i <N;i++) A[i]=sc.nextInt();
        Arrays.sort(A);
        for(int i=0;i<N-1;i++) B[i]=A[i+1]-A[i];
        B[N-1] = A[0]+K-A[N-1];
        int maximum = B[0];
        for(int i=0;i<B.length;i++){ if(maximum<B[i]) maximum = B[i];}
        int sol = K-maximum;
        System.out.print(sol);
    }
} Main
import java.util.Scanner;
import java.util.Arrays;

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]; int[] B = new int[N];
        for(int i=0;i <N;i++) A[i]=sc.nextInt();
        Arrays.sort(A);
        for(int i=0;i<N-1;i++) B[i]=A[i+1]-A[i];
        B[N-1] = A[0]+K-A[N-1];
        int maximum = B[0];
        for(int i=0;i<B.length;i++){ if(maximum<B[i]) maximum = B[i];}
        int sol = K-maximum;
        System.out.print(sol);
    }
}