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();
        ArrayList<Integer> array = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            array.add(sc.nextInt());
        }
        int max = 0;
        for (int i = 0; i < n - 1 ; i++) {
            if ((array.get(i + 1) - array.get(i)) > max){
                max = (array.get(i + 1) - array.get(i));
            }
        }
        int b = array.get(0) + (k - array.get(n - 1));
        max = max < b ? b : max;
        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();
        ArrayList<Integer> array = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            array.add(sc.nextInt());
        }
        int max = 0;
        for (int i = 0; i < n - 1 ; i++) {
            if ((array.get(i + 1) - array.get(i)) > max){
                max = (array.get(i + 1) - array.get(i));
            }
        }
        int b = array.get(0) + (k - array.get(n - 1));
        max = max < b ? b : max;
        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();
        ArrayList<Integer> array = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            array.add(sc.nextInt());
        }
        int max = 0;
        for (int i = 0; i < n - 1 ; i++) {
            if ((array.get(i + 1) - array.get(i)) > max){
                max = (array.get(i + 1) - array.get(i));
            }
        }
        int b = array.get(0) + (k - array.get(n - 1));
        max = max < b ? b : max;
        System.out.println(k - max);
    } main {
        Scanner sc = new Scanner(System.in);
        int k = sc.nextInt();
        int n = sc.nextInt();
        ArrayList<Integer> array = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            array.add(sc.nextInt());
        }
        int max = 0;
        for (int i = 0; i < n - 1 ; i++) {
            if ((array.get(i + 1) - array.get(i)) > max){
                max = (array.get(i + 1) - array.get(i));
            }
        }
        int b = array.get(0) + (k - array.get(n - 1));
        max = max < b ? b : max;
        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 ArrayList<Integer> array = new ArrayList<>(); array new ArrayList<>() for (int i = 0; i < n; i++) {
            array.add(sc.nextInt());
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            array.add(sc.nextInt());
        } {
            array.add(sc.nextInt());
        } array.add(sc.nextInt()) array.add array sc.nextInt() sc.nextInt sc int max = 0; max 0 for (int i = 0; i < n - 1 ; i++) {
            if ((array.get(i + 1) - array.get(i)) > max){
                max = (array.get(i + 1) - array.get(i));
            }
        } int i = 0; int i = 0; i 0 i < n - 1 i n - 1 n 1 i++ i++ i {
            if ((array.get(i + 1) - array.get(i)) > max){
                max = (array.get(i + 1) - array.get(i));
            }
        } {
            if ((array.get(i + 1) - array.get(i)) > max){
                max = (array.get(i + 1) - array.get(i));
            }
        } if ((array.get(i + 1) - array.get(i)) > max){
                max = (array.get(i + 1) - array.get(i));
            } (array.get(i + 1) - array.get(i)) > max (array.get(i + 1) - array.get(i)) array.get(i + 1) array.get array i + 1 i 1 array.get(i) array.get array i max {
                max = (array.get(i + 1) - array.get(i));
            } max = (array.get(i + 1) - array.get(i)) max (array.get(i + 1) - array.get(i)) array.get(i + 1) array.get array i + 1 i 1 array.get(i) array.get array i int b = array.get(0) + (k - array.get(n - 1)); b array.get(0) + (k - array.get(n - 1)) array.get(0) array.get array 0 (k - array.get(n - 1)) k array.get(n - 1) array.get array n - 1 n 1 max = max < b ? b : max max max < b ? b : max max < b max b b max 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();
        ArrayList<Integer> array = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            array.add(sc.nextInt());
        }
        int max = 0;
        for (int i = 0; i < n - 1 ; i++) {
            if ((array.get(i + 1) - array.get(i)) > max){
                max = (array.get(i + 1) - array.get(i));
            }
        }
        int b = array.get(0) + (k - array.get(n - 1));
        max = max < b ? b : max;
        System.out.println(k - max);
    }
}