// inputに入力データ全体が入る
function Main(input) {
	// 1行目がinput[0], 2行目がinput[1], …に入る
	const lines = input.split("\n");
	const params = lines[0].split(" ");
	//文字列から10進数に変換するときはparseIntを使います
	const N = parseInt(params[0], 10);
	const M = parseInt(params[1], 10);
  
  	const records = lines.filter((v,i) => i>0);
 
	//出力
  	const lList = [];
  	const rList = [];
  	records.forEach((record) => {
      	var keys = record.split(' ');
      	lList.push(Number(keys[0]));
      	rList.push(Number(keys[1]));
    });
  	const maxL = Math.max(...lList);
    const minR = Math.min(...rList);
  
  	var resultCount = (maxL <= minR) ? (minR - maxL +1) : 0;
  	console.log(resultCount);
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));