import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		//List<String> list= new ArrayList<String>(Arrays.asList(s.split("")));
		//List<Integer> list=new ArrayList<Integer>();
		//Integer[] array = new Integer[m];
        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        int[] ary = new int[2];
        ary[0] = 1;
        ary[1] = n;
        for (int i = 0; i < m; i++) {
            int l = Integer.parseInt(sc.next());
            int r = Integer.parseInt(sc.next());
            if (ary[1] < l || ary[0] > r) {
                System.out.println(0);
                return;
            }
            if (ary[0] < l) {
                ary[0] = l;
            }
            if (ary[1] > r) {
                ary[1] = r;
            }
        }
        System.out.println(ary[1] - ary[0] + 1);
	}
} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		//List<String> list= new ArrayList<String>(Arrays.asList(s.split("")));
		//List<Integer> list=new ArrayList<Integer>();
		//Integer[] array = new Integer[m];
        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        int[] ary = new int[2];
        ary[0] = 1;
        ary[1] = n;
        for (int i = 0; i < m; i++) {
            int l = Integer.parseInt(sc.next());
            int r = Integer.parseInt(sc.next());
            if (ary[1] < l || ary[0] > r) {
                System.out.println(0);
                return;
            }
            if (ary[0] < l) {
                ary[0] = l;
            }
            if (ary[1] > r) {
                ary[1] = r;
            }
        }
        System.out.println(ary[1] - ary[0] + 1);
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		//List<String> list= new ArrayList<String>(Arrays.asList(s.split("")));
		//List<Integer> list=new ArrayList<Integer>();
		//Integer[] array = new Integer[m];
        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        int[] ary = new int[2];
        ary[0] = 1;
        ary[1] = n;
        for (int i = 0; i < m; i++) {
            int l = Integer.parseInt(sc.next());
            int r = Integer.parseInt(sc.next());
            if (ary[1] < l || ary[0] > r) {
                System.out.println(0);
                return;
            }
            if (ary[0] < l) {
                ary[0] = l;
            }
            if (ary[1] > r) {
                ary[1] = r;
            }
        }
        System.out.println(ary[1] - ary[0] + 1);
	} main {
		Scanner sc = new Scanner(System.in);
		//List<String> list= new ArrayList<String>(Arrays.asList(s.split("")));
		//List<Integer> list=new ArrayList<Integer>();
		//Integer[] array = new Integer[m];
        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        int[] ary = new int[2];
        ary[0] = 1;
        ary[1] = n;
        for (int i = 0; i < m; i++) {
            int l = Integer.parseInt(sc.next());
            int r = Integer.parseInt(sc.next());
            if (ary[1] < l || ary[0] > r) {
                System.out.println(0);
                return;
            }
            if (ary[0] < l) {
                ary[0] = l;
            }
            if (ary[1] > r) {
                ary[1] = r;
            }
        }
        System.out.println(ary[1] - ary[0] + 1);
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = Integer.parseInt(sc.next()); n Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int m = Integer.parseInt(sc.next()); m Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int[] ary = new int[2]; ary new int[2] 2 ary[0] = 1 ary[0] ary 0 1 ary[1] = n ary[1] ary 1 n for (int i = 0; i < m; i++) {
            int l = Integer.parseInt(sc.next());
            int r = Integer.parseInt(sc.next());
            if (ary[1] < l || ary[0] > r) {
                System.out.println(0);
                return;
            }
            if (ary[0] < l) {
                ary[0] = l;
            }
            if (ary[1] > r) {
                ary[1] = r;
            }
        } int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
            int l = Integer.parseInt(sc.next());
            int r = Integer.parseInt(sc.next());
            if (ary[1] < l || ary[0] > r) {
                System.out.println(0);
                return;
            }
            if (ary[0] < l) {
                ary[0] = l;
            }
            if (ary[1] > r) {
                ary[1] = r;
            }
        } {
            int l = Integer.parseInt(sc.next());
            int r = Integer.parseInt(sc.next());
            if (ary[1] < l || ary[0] > r) {
                System.out.println(0);
                return;
            }
            if (ary[0] < l) {
                ary[0] = l;
            }
            if (ary[1] > r) {
                ary[1] = r;
            }
        } int l = Integer.parseInt(sc.next()); l Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int r = Integer.parseInt(sc.next()); r Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc if (ary[1] < l || ary[0] > r) {
                System.out.println(0);
                return;
            } ary[1] < l || ary[0] > r ary[1] < l ary[1] ary 1 l ary[0] > r ary[0] ary 0 r {
                System.out.println(0);
                return;
            } System.out.println(0) System.out.println System.out System System.out 0 return; if (ary[0] < l) {
                ary[0] = l;
            } ary[0] < l ary[0] ary 0 l {
                ary[0] = l;
            } ary[0] = l ary[0] ary 0 l if (ary[1] > r) {
                ary[1] = r;
            } ary[1] > r ary[1] ary 1 r {
                ary[1] = r;
            } ary[1] = r ary[1] ary 1 r System.out.println(ary[1] - ary[0] + 1) System.out.println System.out System System.out ary[1] - ary[0] + 1 ary[1] - ary[0] ary[1] ary 1 ary[0] ary 0 1 String[] args args public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		//List<String> list= new ArrayList<String>(Arrays.asList(s.split("")));
		//List<Integer> list=new ArrayList<Integer>();
		//Integer[] array = new Integer[m];
        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        int[] ary = new int[2];
        ary[0] = 1;
        ary[1] = n;
        for (int i = 0; i < m; i++) {
            int l = Integer.parseInt(sc.next());
            int r = Integer.parseInt(sc.next());
            if (ary[1] < l || ary[0] > r) {
                System.out.println(0);
                return;
            }
            if (ary[0] < l) {
                ary[0] = l;
            }
            if (ary[1] > r) {
                ary[1] = r;
            }
        }
        System.out.println(ary[1] - ary[0] + 1);
	}
} public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		//List<String> list= new ArrayList<String>(Arrays.asList(s.split("")));
		//List<Integer> list=new ArrayList<Integer>();
		//Integer[] array = new Integer[m];
        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        int[] ary = new int[2];
        ary[0] = 1;
        ary[1] = n;
        for (int i = 0; i < m; i++) {
            int l = Integer.parseInt(sc.next());
            int r = Integer.parseInt(sc.next());
            if (ary[1] < l || ary[0] > r) {
                System.out.println(0);
                return;
            }
            if (ary[0] < l) {
                ary[0] = l;
            }
            if (ary[1] > r) {
                ary[1] = r;
            }
        }
        System.out.println(ary[1] - ary[0] + 1);
	}
} Main
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		//List<String> list= new ArrayList<String>(Arrays.asList(s.split("")));
		//List<Integer> list=new ArrayList<Integer>();
		//Integer[] array = new Integer[m];
        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        int[] ary = new int[2];
        ary[0] = 1;
        ary[1] = n;
        for (int i = 0; i < m; i++) {
            int l = Integer.parseInt(sc.next());
            int r = Integer.parseInt(sc.next());
            if (ary[1] < l || ary[0] > r) {
                System.out.println(0);
                return;
            }
            if (ary[0] < l) {
                ary[0] = l;
            }
            if (ary[1] > r) {
                ary[1] = r;
            }
        }
        System.out.println(ary[1] - ary[0] + 1);
	}
}