import java.util.*;

public class Main {

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int m = sc.nextInt();
    int[] l = new int[m];
    int[] r = new int[m];

    for (int i = 0; i < m; i++) {
      l[i] = sc.nextInt();
      r[i] = sc.nextInt();
    }

    int min = 0;
    int max = 100001;

    for (int i = 0; i < m; i++) {
      min = Math.max(min,l[i]);
      max = Math.min(max,r[i]);
    }

    if (min > max) {
      System.out.println(0);
    } else {
      System.out.println(max-min+1);
    }
  }

} import java.util.*; util.* java public class Main {

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int m = sc.nextInt();
    int[] l = new int[m];
    int[] r = new int[m];

    for (int i = 0; i < m; i++) {
      l[i] = sc.nextInt();
      r[i] = sc.nextInt();
    }

    int min = 0;
    int max = 100001;

    for (int i = 0; i < m; i++) {
      min = Math.max(min,l[i]);
      max = Math.min(max,r[i]);
    }

    if (min > max) {
      System.out.println(0);
    } else {
      System.out.println(max-min+1);
    }
  }

} Main public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int m = sc.nextInt();
    int[] l = new int[m];
    int[] r = new int[m];

    for (int i = 0; i < m; i++) {
      l[i] = sc.nextInt();
      r[i] = sc.nextInt();
    }

    int min = 0;
    int max = 100001;

    for (int i = 0; i < m; i++) {
      min = Math.max(min,l[i]);
      max = Math.min(max,r[i]);
    }

    if (min > max) {
      System.out.println(0);
    } else {
      System.out.println(max-min+1);
    }
  } main {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int m = sc.nextInt();
    int[] l = new int[m];
    int[] r = new int[m];

    for (int i = 0; i < m; i++) {
      l[i] = sc.nextInt();
      r[i] = sc.nextInt();
    }

    int min = 0;
    int max = 100001;

    for (int i = 0; i < m; i++) {
      min = Math.max(min,l[i]);
      max = Math.min(max,r[i]);
    }

    if (min > max) {
      System.out.println(0);
    } else {
      System.out.println(max-min+1);
    }
  } 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 = new int[m]; l new int[m] m int[] r = new int[m]; r new int[m] m for (int i = 0; i < m; i++) {
      l[i] = sc.nextInt();
      r[i] = sc.nextInt();
    } int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
      l[i] = sc.nextInt();
      r[i] = sc.nextInt();
    } {
      l[i] = sc.nextInt();
      r[i] = sc.nextInt();
    } l[i] = sc.nextInt() l[i] l i sc.nextInt() sc.nextInt sc r[i] = sc.nextInt() r[i] r i sc.nextInt() sc.nextInt sc int min = 0; min 0 int max = 100001; max 100001 for (int i = 0; i < m; i++) {
      min = Math.max(min,l[i]);
      max = Math.min(max,r[i]);
    } int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
      min = Math.max(min,l[i]);
      max = Math.min(max,r[i]);
    } {
      min = Math.max(min,l[i]);
      max = Math.min(max,r[i]);
    } min = Math.max(min,l[i]) min Math.max(min,l[i]) Math.max Math min l[i] l i max = Math.min(max,r[i]) max Math.min(max,r[i]) Math.min Math max r[i] r i if (min > max) {
      System.out.println(0);
    } else {
      System.out.println(max-min+1);
    } min > max min max {
      System.out.println(0);
    } System.out.println(0) System.out.println System.out System System.out 0 {
      System.out.println(max-min+1);
    } System.out.println(max-min+1) System.out.println System.out System System.out max-min+1 max-min max min 1 String[] args args public class Main {

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int m = sc.nextInt();
    int[] l = new int[m];
    int[] r = new int[m];

    for (int i = 0; i < m; i++) {
      l[i] = sc.nextInt();
      r[i] = sc.nextInt();
    }

    int min = 0;
    int max = 100001;

    for (int i = 0; i < m; i++) {
      min = Math.max(min,l[i]);
      max = Math.min(max,r[i]);
    }

    if (min > max) {
      System.out.println(0);
    } else {
      System.out.println(max-min+1);
    }
  }

} public class Main {

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int m = sc.nextInt();
    int[] l = new int[m];
    int[] r = new int[m];

    for (int i = 0; i < m; i++) {
      l[i] = sc.nextInt();
      r[i] = sc.nextInt();
    }

    int min = 0;
    int max = 100001;

    for (int i = 0; i < m; i++) {
      min = Math.max(min,l[i]);
      max = Math.min(max,r[i]);
    }

    if (min > max) {
      System.out.println(0);
    } else {
      System.out.println(max-min+1);
    }
  }

} Main
import java.util.*;

public class Main {

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int m = sc.nextInt();
    int[] l = new int[m];
    int[] r = new int[m];

    for (int i = 0; i < m; i++) {
      l[i] = sc.nextInt();
      r[i] = sc.nextInt();
    }

    int min = 0;
    int max = 100001;

    for (int i = 0; i < m; i++) {
      min = Math.max(min,l[i]);
      max = Math.min(max,r[i]);
    }

    if (min > max) {
      System.out.println(0);
    } else {
      System.out.println(max-min+1);
    }
  }

}
