import java.util.Scanner;
import java.util.ArrayList;
class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int k = sc.nextInt();
    int n = sc.nextInt();
    ArrayList <Integer> li = new ArrayList <Integer>();
    ArrayList <Integer> lili = new ArrayList <Integer>();
    for(int i=0;i<n;i++){
      int a = sc.nextInt();
      li.add(a);
      lili.add(0);
    }
    for(int i=0;i<n-1;i++){
      lili.set(i,li.get(i+1)-li.get(i));
    }
    lili.set(n-1,k-li.get(n-1)+li.get(0));
    int b = lili.get(0);
    for(int i=1;i<n;i++){
      int a = Math.max(b,lili.get(i));
      b = a;
    }
    System.out.println(k-b);
  }
} import java.util.Scanner; Scanner java.util import java.util.ArrayList; ArrayList 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> li = new ArrayList <Integer>();
    ArrayList <Integer> lili = new ArrayList <Integer>();
    for(int i=0;i<n;i++){
      int a = sc.nextInt();
      li.add(a);
      lili.add(0);
    }
    for(int i=0;i<n-1;i++){
      lili.set(i,li.get(i+1)-li.get(i));
    }
    lili.set(n-1,k-li.get(n-1)+li.get(0));
    int b = lili.get(0);
    for(int i=1;i<n;i++){
      int a = Math.max(b,lili.get(i));
      b = a;
    }
    System.out.println(k-b);
  }
} Main public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int k = sc.nextInt();
    int n = sc.nextInt();
    ArrayList <Integer> li = new ArrayList <Integer>();
    ArrayList <Integer> lili = new ArrayList <Integer>();
    for(int i=0;i<n;i++){
      int a = sc.nextInt();
      li.add(a);
      lili.add(0);
    }
    for(int i=0;i<n-1;i++){
      lili.set(i,li.get(i+1)-li.get(i));
    }
    lili.set(n-1,k-li.get(n-1)+li.get(0));
    int b = lili.get(0);
    for(int i=1;i<n;i++){
      int a = Math.max(b,lili.get(i));
      b = a;
    }
    System.out.println(k-b);
  } main {
    Scanner sc = new Scanner(System.in);
    int k = sc.nextInt();
    int n = sc.nextInt();
    ArrayList <Integer> li = new ArrayList <Integer>();
    ArrayList <Integer> lili = new ArrayList <Integer>();
    for(int i=0;i<n;i++){
      int a = sc.nextInt();
      li.add(a);
      lili.add(0);
    }
    for(int i=0;i<n-1;i++){
      lili.set(i,li.get(i+1)-li.get(i));
    }
    lili.set(n-1,k-li.get(n-1)+li.get(0));
    int b = lili.get(0);
    for(int i=1;i<n;i++){
      int a = Math.max(b,lili.get(i));
      b = a;
    }
    System.out.println(k-b);
  } 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> li = new ArrayList <Integer>(); li new ArrayList <Integer>() ArrayList <Integer> lili = new ArrayList <Integer>(); lili new ArrayList <Integer>() for(int i=0;i<n;i++){
      int a = sc.nextInt();
      li.add(a);
      lili.add(0);
    } int i=0; int i=0; i 0 i<n i n i++ i++ i {
      int a = sc.nextInt();
      li.add(a);
      lili.add(0);
    } {
      int a = sc.nextInt();
      li.add(a);
      lili.add(0);
    } int a = sc.nextInt(); a sc.nextInt() sc.nextInt sc li.add(a) li.add li a lili.add(0) lili.add lili 0 for(int i=0;i<n-1;i++){
      lili.set(i,li.get(i+1)-li.get(i));
    } int i=0; int i=0; i 0 i<n-1 i n-1 n 1 i++ i++ i {
      lili.set(i,li.get(i+1)-li.get(i));
    } {
      lili.set(i,li.get(i+1)-li.get(i));
    } lili.set(i,li.get(i+1)-li.get(i)) lili.set lili i li.get(i+1)-li.get(i) li.get(i+1) li.get li i+1 i 1 li.get(i) li.get li i lili.set(n-1,k-li.get(n-1)+li.get(0)) lili.set lili n-1 n 1 k-li.get(n-1)+li.get(0) k-li.get(n-1) k li.get(n-1) li.get li n-1 n 1 li.get(0) li.get li 0 int b = lili.get(0); b lili.get(0) lili.get lili 0 for(int i=1;i<n;i++){
      int a = Math.max(b,lili.get(i));
      b = a;
    } int i=1; int i=1; i 1 i<n i n i++ i++ i {
      int a = Math.max(b,lili.get(i));
      b = a;
    } {
      int a = Math.max(b,lili.get(i));
      b = a;
    } int a = Math.max(b,lili.get(i)); a Math.max(b,lili.get(i)) Math.max Math b lili.get(i) lili.get lili i b = a b a System.out.println(k-b) System.out.println System.out System System.out k-b k b String[] args args
import java.util.Scanner;
import java.util.ArrayList;
class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int k = sc.nextInt();
    int n = sc.nextInt();
    ArrayList <Integer> li = new ArrayList <Integer>();
    ArrayList <Integer> lili = new ArrayList <Integer>();
    for(int i=0;i<n;i++){
      int a = sc.nextInt();
      li.add(a);
      lili.add(0);
    }
    for(int i=0;i<n-1;i++){
      lili.set(i,li.get(i+1)-li.get(i));
    }
    lili.set(n-1,k-li.get(n-1)+li.get(0));
    int b = lili.get(0);
    for(int i=1;i<n;i++){
      int a = Math.max(b,lili.get(i));
      b = a;
    }
    System.out.println(k-b);
  }
}