import java.util.Scanner;

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 max_dist = 0;
        for(int i = 0; i < n; i++){
            a[i] = sc.nextInt();
        }
        sc.close();
        max_dist = a[0] + (k - a[n - 1]);
        for(int i = 0; i < n - 1; i++){
            max_dist = Math.max(max_dist, a[i + 1] - a[i]);
        }
        System.out.println(k - max_dist);
    }
} import java.util.Scanner; Scanner 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 max_dist = 0;
        for(int i = 0; i < n; i++){
            a[i] = sc.nextInt();
        }
        sc.close();
        max_dist = a[0] + (k - a[n - 1]);
        for(int i = 0; i < n - 1; i++){
            max_dist = Math.max(max_dist, a[i + 1] - a[i]);
        }
        System.out.println(k - max_dist);
    }
} 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 max_dist = 0;
        for(int i = 0; i < n; i++){
            a[i] = sc.nextInt();
        }
        sc.close();
        max_dist = a[0] + (k - a[n - 1]);
        for(int i = 0; i < n - 1; i++){
            max_dist = Math.max(max_dist, a[i + 1] - a[i]);
        }
        System.out.println(k - max_dist);
    } main {
        Scanner sc = new Scanner(System.in);
        int k = sc.nextInt();
        int n = sc.nextInt();
        int[] a = new int[n];
        int max_dist = 0;
        for(int i = 0; i < n; i++){
            a[i] = sc.nextInt();
        }
        sc.close();
        max_dist = a[0] + (k - a[n - 1]);
        for(int i = 0; i < n - 1; i++){
            max_dist = Math.max(max_dist, a[i + 1] - a[i]);
        }
        System.out.println(k - max_dist);
    } 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 max_dist = 0; max_dist 0 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 sc.close() sc.close sc max_dist = a[0] + (k - a[n - 1]) max_dist a[0] + (k - a[n - 1]) a[0] a 0 (k - a[n - 1]) k a[n - 1] a n - 1 n 1 for(int i = 0; i < n - 1; i++){
            max_dist = Math.max(max_dist, a[i + 1] - a[i]);
        } int i = 0; int i = 0; i 0 i < n - 1 i n - 1 n 1 i++ i++ i {
            max_dist = Math.max(max_dist, a[i + 1] - a[i]);
        } {
            max_dist = Math.max(max_dist, a[i + 1] - a[i]);
        } max_dist = Math.max(max_dist, a[i + 1] - a[i]) max_dist Math.max(max_dist, a[i + 1] - a[i]) Math.max Math max_dist a[i + 1] - a[i] a[i + 1] a i + 1 i 1 a[i] a i System.out.println(k - max_dist) System.out.println System.out System System.out k - max_dist k max_dist 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 max_dist = 0;
        for(int i = 0; i < n; i++){
            a[i] = sc.nextInt();
        }
        sc.close();
        max_dist = a[0] + (k - a[n - 1]);
        for(int i = 0; i < n - 1; i++){
            max_dist = Math.max(max_dist, a[i + 1] - a[i]);
        }
        System.out.println(k - max_dist);
    }
} 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 max_dist = 0;
        for(int i = 0; i < n; i++){
            a[i] = sc.nextInt();
        }
        sc.close();
        max_dist = a[0] + (k - a[n - 1]);
        for(int i = 0; i < n - 1; i++){
            max_dist = Math.max(max_dist, a[i + 1] - a[i]);
        }
        System.out.println(k - max_dist);
    }
} Main
import java.util.Scanner;

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 max_dist = 0;
        for(int i = 0; i < n; i++){
            a[i] = sc.nextInt();
        }
        sc.close();
        max_dist = a[0] + (k - a[n - 1]);
        for(int i = 0; i < n - 1; i++){
            max_dist = Math.max(max_dist, a[i + 1] - a[i]);
        }
        System.out.println(k - max_dist);
    }
}