import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc=new Scanner(System.in);
		
		int n=sc.nextInt();		//IDカード
		int m=sc.nextInt();		//ゲート
		
		int l=0;
		int r=n;
		
		for(int i=0;i<m;i++) {
			int l2=sc.nextInt();
			int r2=sc.nextInt();
			
			l=Math.max(l,l2);
			r=Math.min(r,r2);
		}
		int ans=r-l+1;
		if(ans>0) System.out.println(ans);
		else System.out.println(0);
	}
} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc=new Scanner(System.in);
		
		int n=sc.nextInt();		//IDカード
		int m=sc.nextInt();		//ゲート
		
		int l=0;
		int r=n;
		
		for(int i=0;i<m;i++) {
			int l2=sc.nextInt();
			int r2=sc.nextInt();
			
			l=Math.max(l,l2);
			r=Math.min(r,r2);
		}
		int ans=r-l+1;
		if(ans>0) System.out.println(ans);
		else System.out.println(0);
	}
} Main public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc=new Scanner(System.in);
		
		int n=sc.nextInt();		//IDカード
		int m=sc.nextInt();		//ゲート
		
		int l=0;
		int r=n;
		
		for(int i=0;i<m;i++) {
			int l2=sc.nextInt();
			int r2=sc.nextInt();
			
			l=Math.max(l,l2);
			r=Math.min(r,r2);
		}
		int ans=r-l+1;
		if(ans>0) System.out.println(ans);
		else System.out.println(0);
	} main {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc=new Scanner(System.in);
		
		int n=sc.nextInt();		//IDカード
		int m=sc.nextInt();		//ゲート
		
		int l=0;
		int r=n;
		
		for(int i=0;i<m;i++) {
			int l2=sc.nextInt();
			int r2=sc.nextInt();
			
			l=Math.max(l,l2);
			r=Math.min(r,r2);
		}
		int ans=r-l+1;
		if(ans>0) System.out.println(ans);
		else System.out.println(0);
	} Scanner sc=new Scanner(System.in); sc new Scanner(System.in) int n=sc.nextInt(); n sc.nextInt() sc.nextInt sc int m=sc.nextInt(); m sc.nextInt() sc.nextInt sc int l=0; l 0 int r=n; r n for(int i=0;i<m;i++) {
			int l2=sc.nextInt();
			int r2=sc.nextInt();
			
			l=Math.max(l,l2);
			r=Math.min(r,r2);
		} int i=0; int i=0; i 0 i<m i m i++ i++ i {
			int l2=sc.nextInt();
			int r2=sc.nextInt();
			
			l=Math.max(l,l2);
			r=Math.min(r,r2);
		} {
			int l2=sc.nextInt();
			int r2=sc.nextInt();
			
			l=Math.max(l,l2);
			r=Math.min(r,r2);
		} int l2=sc.nextInt(); l2 sc.nextInt() sc.nextInt sc int r2=sc.nextInt(); r2 sc.nextInt() sc.nextInt sc l=Math.max(l,l2) l Math.max(l,l2) Math.max Math l l2 r=Math.min(r,r2) r Math.min(r,r2) Math.min Math r r2 int ans=r-l+1; ans r-l+1 r-l r l 1 if(ans>0) System.out.println(ans);
		else System.out.println(0); ans>0 ans 0 System.out.println(ans) System.out.println System.out System System.out ans System.out.println(0) System.out.println System.out System System.out 0 String[] args args public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc=new Scanner(System.in);
		
		int n=sc.nextInt();		//IDカード
		int m=sc.nextInt();		//ゲート
		
		int l=0;
		int r=n;
		
		for(int i=0;i<m;i++) {
			int l2=sc.nextInt();
			int r2=sc.nextInt();
			
			l=Math.max(l,l2);
			r=Math.min(r,r2);
		}
		int ans=r-l+1;
		if(ans>0) System.out.println(ans);
		else System.out.println(0);
	}
} public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc=new Scanner(System.in);
		
		int n=sc.nextInt();		//IDカード
		int m=sc.nextInt();		//ゲート
		
		int l=0;
		int r=n;
		
		for(int i=0;i<m;i++) {
			int l2=sc.nextInt();
			int r2=sc.nextInt();
			
			l=Math.max(l,l2);
			r=Math.min(r,r2);
		}
		int ans=r-l+1;
		if(ans>0) System.out.println(ans);
		else System.out.println(0);
	}
} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc=new Scanner(System.in);
		
		int n=sc.nextInt();		//IDカード
		int m=sc.nextInt();		//ゲート
		
		int l=0;
		int r=n;
		
		for(int i=0;i<m;i++) {
			int l2=sc.nextInt();
			int r2=sc.nextInt();
			
			l=Math.max(l,l2);
			r=Math.min(r,r2);
		}
		int ans=r-l+1;
		if(ans>0) System.out.println(ans);
		else System.out.println(0);
	}
}