import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		try {
			int isshuu = sc.nextInt();
			int ienokazu = sc.nextInt();
			int[] ienozahyo = new int[ienokazu];
			for (int i = 0; i < ienokazu; i++) {
				ienozahyo[i] = sc.nextInt();
			}

			int[] ienoaida = new int[ienokazu];
			for (int i = 0; i < ienokazu - 1; i++) {
				ienoaida[i] = ienozahyo[i + 1] - ienozahyo[i];
			}
			ienoaida[ienokazu - 1] = isshuu - ienozahyo[ienokazu - 1] + ienozahyo[0];

			//一番間隔が広い家の間の距離を探す
			int maxtooi = 0;
			for (int i = 0; i < ienokazu - 1; i++) {
				if (ienoaida[i] > ienoaida[i + 1]) {
					if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					}
				}
			}
			if (maxtooi < ienoaida[ienokazu - 1]) {
				maxtooi = ienoaida[ienokazu - 1];
			}

			System.out.println(isshuu - maxtooi);
		} finally {
			sc.close();
		}
	}

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

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		try {
			int isshuu = sc.nextInt();
			int ienokazu = sc.nextInt();
			int[] ienozahyo = new int[ienokazu];
			for (int i = 0; i < ienokazu; i++) {
				ienozahyo[i] = sc.nextInt();
			}

			int[] ienoaida = new int[ienokazu];
			for (int i = 0; i < ienokazu - 1; i++) {
				ienoaida[i] = ienozahyo[i + 1] - ienozahyo[i];
			}
			ienoaida[ienokazu - 1] = isshuu - ienozahyo[ienokazu - 1] + ienozahyo[0];

			//一番間隔が広い家の間の距離を探す
			int maxtooi = 0;
			for (int i = 0; i < ienokazu - 1; i++) {
				if (ienoaida[i] > ienoaida[i + 1]) {
					if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					}
				}
			}
			if (maxtooi < ienoaida[ienokazu - 1]) {
				maxtooi = ienoaida[ienokazu - 1];
			}

			System.out.println(isshuu - maxtooi);
		} finally {
			sc.close();
		}
	}

} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		try {
			int isshuu = sc.nextInt();
			int ienokazu = sc.nextInt();
			int[] ienozahyo = new int[ienokazu];
			for (int i = 0; i < ienokazu; i++) {
				ienozahyo[i] = sc.nextInt();
			}

			int[] ienoaida = new int[ienokazu];
			for (int i = 0; i < ienokazu - 1; i++) {
				ienoaida[i] = ienozahyo[i + 1] - ienozahyo[i];
			}
			ienoaida[ienokazu - 1] = isshuu - ienozahyo[ienokazu - 1] + ienozahyo[0];

			//一番間隔が広い家の間の距離を探す
			int maxtooi = 0;
			for (int i = 0; i < ienokazu - 1; i++) {
				if (ienoaida[i] > ienoaida[i + 1]) {
					if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					}
				}
			}
			if (maxtooi < ienoaida[ienokazu - 1]) {
				maxtooi = ienoaida[ienokazu - 1];
			}

			System.out.println(isshuu - maxtooi);
		} finally {
			sc.close();
		}
	} main {
		Scanner sc = new Scanner(System.in);
		try {
			int isshuu = sc.nextInt();
			int ienokazu = sc.nextInt();
			int[] ienozahyo = new int[ienokazu];
			for (int i = 0; i < ienokazu; i++) {
				ienozahyo[i] = sc.nextInt();
			}

			int[] ienoaida = new int[ienokazu];
			for (int i = 0; i < ienokazu - 1; i++) {
				ienoaida[i] = ienozahyo[i + 1] - ienozahyo[i];
			}
			ienoaida[ienokazu - 1] = isshuu - ienozahyo[ienokazu - 1] + ienozahyo[0];

			//一番間隔が広い家の間の距離を探す
			int maxtooi = 0;
			for (int i = 0; i < ienokazu - 1; i++) {
				if (ienoaida[i] > ienoaida[i + 1]) {
					if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					}
				}
			}
			if (maxtooi < ienoaida[ienokazu - 1]) {
				maxtooi = ienoaida[ienokazu - 1];
			}

			System.out.println(isshuu - maxtooi);
		} finally {
			sc.close();
		}
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) try {
			int isshuu = sc.nextInt();
			int ienokazu = sc.nextInt();
			int[] ienozahyo = new int[ienokazu];
			for (int i = 0; i < ienokazu; i++) {
				ienozahyo[i] = sc.nextInt();
			}

			int[] ienoaida = new int[ienokazu];
			for (int i = 0; i < ienokazu - 1; i++) {
				ienoaida[i] = ienozahyo[i + 1] - ienozahyo[i];
			}
			ienoaida[ienokazu - 1] = isshuu - ienozahyo[ienokazu - 1] + ienozahyo[0];

			//一番間隔が広い家の間の距離を探す
			int maxtooi = 0;
			for (int i = 0; i < ienokazu - 1; i++) {
				if (ienoaida[i] > ienoaida[i + 1]) {
					if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					}
				}
			}
			if (maxtooi < ienoaida[ienokazu - 1]) {
				maxtooi = ienoaida[ienokazu - 1];
			}

			System.out.println(isshuu - maxtooi);
		} finally {
			sc.close();
		} {
			sc.close();
		} sc.close() sc.close sc {
			int isshuu = sc.nextInt();
			int ienokazu = sc.nextInt();
			int[] ienozahyo = new int[ienokazu];
			for (int i = 0; i < ienokazu; i++) {
				ienozahyo[i] = sc.nextInt();
			}

			int[] ienoaida = new int[ienokazu];
			for (int i = 0; i < ienokazu - 1; i++) {
				ienoaida[i] = ienozahyo[i + 1] - ienozahyo[i];
			}
			ienoaida[ienokazu - 1] = isshuu - ienozahyo[ienokazu - 1] + ienozahyo[0];

			//一番間隔が広い家の間の距離を探す
			int maxtooi = 0;
			for (int i = 0; i < ienokazu - 1; i++) {
				if (ienoaida[i] > ienoaida[i + 1]) {
					if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					}
				}
			}
			if (maxtooi < ienoaida[ienokazu - 1]) {
				maxtooi = ienoaida[ienokazu - 1];
			}

			System.out.println(isshuu - maxtooi);
		} int isshuu = sc.nextInt(); isshuu sc.nextInt() sc.nextInt sc int ienokazu = sc.nextInt(); ienokazu sc.nextInt() sc.nextInt sc int[] ienozahyo = new int[ienokazu]; ienozahyo new int[ienokazu] ienokazu for (int i = 0; i < ienokazu; i++) {
				ienozahyo[i] = sc.nextInt();
			} int i = 0; int i = 0; i 0 i < ienokazu i ienokazu i++ i++ i {
				ienozahyo[i] = sc.nextInt();
			} {
				ienozahyo[i] = sc.nextInt();
			} ienozahyo[i] = sc.nextInt() ienozahyo[i] ienozahyo i sc.nextInt() sc.nextInt sc int[] ienoaida = new int[ienokazu]; ienoaida new int[ienokazu] ienokazu for (int i = 0; i < ienokazu - 1; i++) {
				ienoaida[i] = ienozahyo[i + 1] - ienozahyo[i];
			} int i = 0; int i = 0; i 0 i < ienokazu - 1 i ienokazu - 1 ienokazu 1 i++ i++ i {
				ienoaida[i] = ienozahyo[i + 1] - ienozahyo[i];
			} {
				ienoaida[i] = ienozahyo[i + 1] - ienozahyo[i];
			} ienoaida[i] = ienozahyo[i + 1] - ienozahyo[i] ienoaida[i] ienoaida i ienozahyo[i + 1] - ienozahyo[i] ienozahyo[i + 1] ienozahyo i + 1 i 1 ienozahyo[i] ienozahyo i ienoaida[ienokazu - 1] = isshuu - ienozahyo[ienokazu - 1] + ienozahyo[0] ienoaida[ienokazu - 1] ienoaida ienokazu - 1 ienokazu 1 isshuu - ienozahyo[ienokazu - 1] + ienozahyo[0] isshuu - ienozahyo[ienokazu - 1] isshuu ienozahyo[ienokazu - 1] ienozahyo ienokazu - 1 ienokazu 1 ienozahyo[0] ienozahyo 0 int maxtooi = 0; maxtooi 0 for (int i = 0; i < ienokazu - 1; i++) {
				if (ienoaida[i] > ienoaida[i + 1]) {
					if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					}
				}
			} int i = 0; int i = 0; i 0 i < ienokazu - 1 i ienokazu - 1 ienokazu 1 i++ i++ i {
				if (ienoaida[i] > ienoaida[i + 1]) {
					if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					}
				}
			} {
				if (ienoaida[i] > ienoaida[i + 1]) {
					if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					}
				}
			} if (ienoaida[i] > ienoaida[i + 1]) {
					if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					}
				} ienoaida[i] > ienoaida[i + 1] ienoaida[i] ienoaida i ienoaida[i + 1] ienoaida i + 1 i 1 {
					if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					}
				} if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					} maxtooi < ienoaida[i] maxtooi ienoaida[i] ienoaida i {
						maxtooi = ienoaida[i];
					} maxtooi = ienoaida[i] maxtooi ienoaida[i] ienoaida i if (maxtooi < ienoaida[ienokazu - 1]) {
				maxtooi = ienoaida[ienokazu - 1];
			} maxtooi < ienoaida[ienokazu - 1] maxtooi ienoaida[ienokazu - 1] ienoaida ienokazu - 1 ienokazu 1 {
				maxtooi = ienoaida[ienokazu - 1];
			} maxtooi = ienoaida[ienokazu - 1] maxtooi ienoaida[ienokazu - 1] ienoaida ienokazu - 1 ienokazu 1 System.out.println(isshuu - maxtooi) System.out.println System.out System System.out isshuu - maxtooi isshuu maxtooi String[] args args public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		try {
			int isshuu = sc.nextInt();
			int ienokazu = sc.nextInt();
			int[] ienozahyo = new int[ienokazu];
			for (int i = 0; i < ienokazu; i++) {
				ienozahyo[i] = sc.nextInt();
			}

			int[] ienoaida = new int[ienokazu];
			for (int i = 0; i < ienokazu - 1; i++) {
				ienoaida[i] = ienozahyo[i + 1] - ienozahyo[i];
			}
			ienoaida[ienokazu - 1] = isshuu - ienozahyo[ienokazu - 1] + ienozahyo[0];

			//一番間隔が広い家の間の距離を探す
			int maxtooi = 0;
			for (int i = 0; i < ienokazu - 1; i++) {
				if (ienoaida[i] > ienoaida[i + 1]) {
					if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					}
				}
			}
			if (maxtooi < ienoaida[ienokazu - 1]) {
				maxtooi = ienoaida[ienokazu - 1];
			}

			System.out.println(isshuu - maxtooi);
		} finally {
			sc.close();
		}
	}

} public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		try {
			int isshuu = sc.nextInt();
			int ienokazu = sc.nextInt();
			int[] ienozahyo = new int[ienokazu];
			for (int i = 0; i < ienokazu; i++) {
				ienozahyo[i] = sc.nextInt();
			}

			int[] ienoaida = new int[ienokazu];
			for (int i = 0; i < ienokazu - 1; i++) {
				ienoaida[i] = ienozahyo[i + 1] - ienozahyo[i];
			}
			ienoaida[ienokazu - 1] = isshuu - ienozahyo[ienokazu - 1] + ienozahyo[0];

			//一番間隔が広い家の間の距離を探す
			int maxtooi = 0;
			for (int i = 0; i < ienokazu - 1; i++) {
				if (ienoaida[i] > ienoaida[i + 1]) {
					if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					}
				}
			}
			if (maxtooi < ienoaida[ienokazu - 1]) {
				maxtooi = ienoaida[ienokazu - 1];
			}

			System.out.println(isshuu - maxtooi);
		} finally {
			sc.close();
		}
	}

} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		try {
			int isshuu = sc.nextInt();
			int ienokazu = sc.nextInt();
			int[] ienozahyo = new int[ienokazu];
			for (int i = 0; i < ienokazu; i++) {
				ienozahyo[i] = sc.nextInt();
			}

			int[] ienoaida = new int[ienokazu];
			for (int i = 0; i < ienokazu - 1; i++) {
				ienoaida[i] = ienozahyo[i + 1] - ienozahyo[i];
			}
			ienoaida[ienokazu - 1] = isshuu - ienozahyo[ienokazu - 1] + ienozahyo[0];

			//一番間隔が広い家の間の距離を探す
			int maxtooi = 0;
			for (int i = 0; i < ienokazu - 1; i++) {
				if (ienoaida[i] > ienoaida[i + 1]) {
					if (maxtooi < ienoaida[i]) {
						maxtooi = ienoaida[i];
					}
				}
			}
			if (maxtooi < ienoaida[ienokazu - 1]) {
				maxtooi = ienoaida[ienokazu - 1];
			}

			System.out.println(isshuu - maxtooi);
		} finally {
			sc.close();
		}
	}

}
