import java.util.Scanner;



public class Main {
	//C - Prison


	public static void main(String[] args){
		int N;int M;
		Scanner sc = new Scanner(System.in);
		N=sc.nextInt();
		M=sc.nextInt();

		boolean[]Ans=new boolean[N+1];
		for(int i=0;i<N+1;i++) {
			Ans[i]=true;
		}
		for(int i=0;i<M;i++) {
			int L=sc.nextInt();
			int R=sc.nextInt();
			for(int j=0;j<L;j++) {
				Ans[j]=false;
			}
			for(int j=R+1;j<N+1;j++) {
				Ans[j]=false;
			}
		}
		int num=0;
		for(int i=0;i<N+1;i++) {
			if(Ans[i])num++;
		}
		System.out.println(num);


	}
} import java.util.Scanner; Scanner java.util public class Main {
	//C - Prison


	public static void main(String[] args){
		int N;int M;
		Scanner sc = new Scanner(System.in);
		N=sc.nextInt();
		M=sc.nextInt();

		boolean[]Ans=new boolean[N+1];
		for(int i=0;i<N+1;i++) {
			Ans[i]=true;
		}
		for(int i=0;i<M;i++) {
			int L=sc.nextInt();
			int R=sc.nextInt();
			for(int j=0;j<L;j++) {
				Ans[j]=false;
			}
			for(int j=R+1;j<N+1;j++) {
				Ans[j]=false;
			}
		}
		int num=0;
		for(int i=0;i<N+1;i++) {
			if(Ans[i])num++;
		}
		System.out.println(num);


	}
} Main public static void main(String[] args){
		int N;int M;
		Scanner sc = new Scanner(System.in);
		N=sc.nextInt();
		M=sc.nextInt();

		boolean[]Ans=new boolean[N+1];
		for(int i=0;i<N+1;i++) {
			Ans[i]=true;
		}
		for(int i=0;i<M;i++) {
			int L=sc.nextInt();
			int R=sc.nextInt();
			for(int j=0;j<L;j++) {
				Ans[j]=false;
			}
			for(int j=R+1;j<N+1;j++) {
				Ans[j]=false;
			}
		}
		int num=0;
		for(int i=0;i<N+1;i++) {
			if(Ans[i])num++;
		}
		System.out.println(num);


	} main {
		int N;int M;
		Scanner sc = new Scanner(System.in);
		N=sc.nextInt();
		M=sc.nextInt();

		boolean[]Ans=new boolean[N+1];
		for(int i=0;i<N+1;i++) {
			Ans[i]=true;
		}
		for(int i=0;i<M;i++) {
			int L=sc.nextInt();
			int R=sc.nextInt();
			for(int j=0;j<L;j++) {
				Ans[j]=false;
			}
			for(int j=R+1;j<N+1;j++) {
				Ans[j]=false;
			}
		}
		int num=0;
		for(int i=0;i<N+1;i++) {
			if(Ans[i])num++;
		}
		System.out.println(num);


	} int N; N int M; M Scanner sc = new Scanner(System.in); sc new Scanner(System.in) N=sc.nextInt() N sc.nextInt() sc.nextInt sc M=sc.nextInt() M sc.nextInt() sc.nextInt sc boolean[]Ans=new boolean[N+1]; Ans new boolean[N+1] N+1 N 1 for(int i=0;i<N+1;i++) {
			Ans[i]=true;
		} int i=0; int i=0; i 0 i<N+1 i N+1 N 1 i++ i++ i {
			Ans[i]=true;
		} {
			Ans[i]=true;
		} Ans[i]=true Ans[i] Ans i true for(int i=0;i<M;i++) {
			int L=sc.nextInt();
			int R=sc.nextInt();
			for(int j=0;j<L;j++) {
				Ans[j]=false;
			}
			for(int j=R+1;j<N+1;j++) {
				Ans[j]=false;
			}
		} int i=0; int i=0; i 0 i<M i M i++ i++ i {
			int L=sc.nextInt();
			int R=sc.nextInt();
			for(int j=0;j<L;j++) {
				Ans[j]=false;
			}
			for(int j=R+1;j<N+1;j++) {
				Ans[j]=false;
			}
		} {
			int L=sc.nextInt();
			int R=sc.nextInt();
			for(int j=0;j<L;j++) {
				Ans[j]=false;
			}
			for(int j=R+1;j<N+1;j++) {
				Ans[j]=false;
			}
		} int L=sc.nextInt(); L sc.nextInt() sc.nextInt sc int R=sc.nextInt(); R sc.nextInt() sc.nextInt sc for(int j=0;j<L;j++) {
				Ans[j]=false;
			} int j=0; int j=0; j 0 j<L j L j++ j++ j {
				Ans[j]=false;
			} {
				Ans[j]=false;
			} Ans[j]=false Ans[j] Ans j false for(int j=R+1;j<N+1;j++) {
				Ans[j]=false;
			} int j=R+1; int j=R+1; j R+1 R 1 j<N+1 j N+1 N 1 j++ j++ j {
				Ans[j]=false;
			} {
				Ans[j]=false;
			} Ans[j]=false Ans[j] Ans j false int num=0; num 0 for(int i=0;i<N+1;i++) {
			if(Ans[i])num++;
		} int i=0; int i=0; i 0 i<N+1 i N+1 N 1 i++ i++ i {
			if(Ans[i])num++;
		} {
			if(Ans[i])num++;
		} if(Ans[i])num++; Ans[i] Ans i num++ num System.out.println(num) System.out.println System.out System System.out num String[] args args public class Main {
	//C - Prison


	public static void main(String[] args){
		int N;int M;
		Scanner sc = new Scanner(System.in);
		N=sc.nextInt();
		M=sc.nextInt();

		boolean[]Ans=new boolean[N+1];
		for(int i=0;i<N+1;i++) {
			Ans[i]=true;
		}
		for(int i=0;i<M;i++) {
			int L=sc.nextInt();
			int R=sc.nextInt();
			for(int j=0;j<L;j++) {
				Ans[j]=false;
			}
			for(int j=R+1;j<N+1;j++) {
				Ans[j]=false;
			}
		}
		int num=0;
		for(int i=0;i<N+1;i++) {
			if(Ans[i])num++;
		}
		System.out.println(num);


	}
} public class Main {
	//C - Prison


	public static void main(String[] args){
		int N;int M;
		Scanner sc = new Scanner(System.in);
		N=sc.nextInt();
		M=sc.nextInt();

		boolean[]Ans=new boolean[N+1];
		for(int i=0;i<N+1;i++) {
			Ans[i]=true;
		}
		for(int i=0;i<M;i++) {
			int L=sc.nextInt();
			int R=sc.nextInt();
			for(int j=0;j<L;j++) {
				Ans[j]=false;
			}
			for(int j=R+1;j<N+1;j++) {
				Ans[j]=false;
			}
		}
		int num=0;
		for(int i=0;i<N+1;i++) {
			if(Ans[i])num++;
		}
		System.out.println(num);


	}
} Main
import java.util.Scanner;



public class Main {
	//C - Prison


	public static void main(String[] args){
		int N;int M;
		Scanner sc = new Scanner(System.in);
		N=sc.nextInt();
		M=sc.nextInt();

		boolean[]Ans=new boolean[N+1];
		for(int i=0;i<N+1;i++) {
			Ans[i]=true;
		}
		for(int i=0;i<M;i++) {
			int L=sc.nextInt();
			int R=sc.nextInt();
			for(int j=0;j<L;j++) {
				Ans[j]=false;
			}
			for(int j=R+1;j<N+1;j++) {
				Ans[j]=false;
			}
		}
		int num=0;
		for(int i=0;i<N+1;i++) {
			if(Ans[i])num++;
		}
		System.out.println(num);


	}
}