'use strict';
process.stdin.resume();
process.stdin.setEncoding('utf8');
// Your code here!
 
function Main(input) {
	// 1行目がinput[0], 2行目がinput[1], …に入る
	input = input.split("\n");
	let K = parseInt(input[0].split(" ")[0]);
	let N = parseInt(input[0].split(" ")[1]);
	let A = input[1].split(" ").map(Number);
	let s=0,t=-Infinity;
	for(let i=1;i<N;i++){
	    if(A[i]-A[i-1]>t){
	        s=i;
	        t=A[i]-A[i-1];
	    }
	    //console.log(s,t);
	}
    if(A[0]+K-A[N-1]>t){
	        s=0;
	        t=A[0]+K-A[N-1];
	}
	//console.log(s,t);
	//console.log(A[s],A[s==0?N-1:s-1])
    if(A[s]>A[s==0?N-1:s-1]){
        console.log(A[s]-A[s==(N-1)?0:s+1]);
    }else{
        console.log(A[s==0?N-1:s-1]-A[s]);
    }
    
    
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));