import java.util.Scanner;

/**
 * Prison
 */
public class Main {

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

            int L_MAX = 0;
            int R_MIN = N + 1;
            for (int i = 0; i < M; i++) {
                L_MAX = Math.max(L_MAX, sc.nextInt());
                R_MIN = Math.min(R_MIN, sc.nextInt());
            }

            if (L_MAX <= R_MIN) {
                System.out.println(R_MIN - L_MAX + 1);
            } else {
                System.out.println(0);
            }
        }
    }

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

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

            int L_MAX = 0;
            int R_MIN = N + 1;
            for (int i = 0; i < M; i++) {
                L_MAX = Math.max(L_MAX, sc.nextInt());
                R_MIN = Math.min(R_MIN, sc.nextInt());
            }

            if (L_MAX <= R_MIN) {
                System.out.println(R_MIN - L_MAX + 1);
            } else {
                System.out.println(0);
            }
        }
    }

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

            int L_MAX = 0;
            int R_MIN = N + 1;
            for (int i = 0; i < M; i++) {
                L_MAX = Math.max(L_MAX, sc.nextInt());
                R_MIN = Math.min(R_MIN, sc.nextInt());
            }

            if (L_MAX <= R_MIN) {
                System.out.println(R_MIN - L_MAX + 1);
            } else {
                System.out.println(0);
            }
        }
    } main {
        try (Scanner sc = new Scanner(System.in)) {
            int N = sc.nextInt();
            int M = sc.nextInt();

            int L_MAX = 0;
            int R_MIN = N + 1;
            for (int i = 0; i < M; i++) {
                L_MAX = Math.max(L_MAX, sc.nextInt());
                R_MIN = Math.min(R_MIN, sc.nextInt());
            }

            if (L_MAX <= R_MIN) {
                System.out.println(R_MIN - L_MAX + 1);
            } else {
                System.out.println(0);
            }
        }
    } try (Scanner sc = new Scanner(System.in)) {
            int N = sc.nextInt();
            int M = sc.nextInt();

            int L_MAX = 0;
            int R_MIN = N + 1;
            for (int i = 0; i < M; i++) {
                L_MAX = Math.max(L_MAX, sc.nextInt());
                R_MIN = Math.min(R_MIN, sc.nextInt());
            }

            if (L_MAX <= R_MIN) {
                System.out.println(R_MIN - L_MAX + 1);
            } else {
                System.out.println(0);
            }
        } {
            int N = sc.nextInt();
            int M = sc.nextInt();

            int L_MAX = 0;
            int R_MIN = N + 1;
            for (int i = 0; i < M; i++) {
                L_MAX = Math.max(L_MAX, sc.nextInt());
                R_MIN = Math.min(R_MIN, sc.nextInt());
            }

            if (L_MAX <= R_MIN) {
                System.out.println(R_MIN - L_MAX + 1);
            } else {
                System.out.println(0);
            }
        } Scanner sc = new Scanner(System.in) Scanner sc = new Scanner(System.in) 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_MAX = 0; L_MAX 0 int R_MIN = N + 1; R_MIN N + 1 N 1 for (int i = 0; i < M; i++) {
                L_MAX = Math.max(L_MAX, sc.nextInt());
                R_MIN = Math.min(R_MIN, sc.nextInt());
            } int i = 0; int i = 0; i 0 i < M i M i++ i++ i {
                L_MAX = Math.max(L_MAX, sc.nextInt());
                R_MIN = Math.min(R_MIN, sc.nextInt());
            } {
                L_MAX = Math.max(L_MAX, sc.nextInt());
                R_MIN = Math.min(R_MIN, sc.nextInt());
            } L_MAX = Math.max(L_MAX, sc.nextInt()) L_MAX Math.max(L_MAX, sc.nextInt()) Math.max Math L_MAX sc.nextInt() sc.nextInt sc R_MIN = Math.min(R_MIN, sc.nextInt()) R_MIN Math.min(R_MIN, sc.nextInt()) Math.min Math R_MIN sc.nextInt() sc.nextInt sc if (L_MAX <= R_MIN) {
                System.out.println(R_MIN - L_MAX + 1);
            } else {
                System.out.println(0);
            } L_MAX <= R_MIN L_MAX R_MIN {
                System.out.println(R_MIN - L_MAX + 1);
            } System.out.println(R_MIN - L_MAX + 1) System.out.println System.out System System.out R_MIN - L_MAX + 1 R_MIN - L_MAX R_MIN L_MAX 1 {
                System.out.println(0);
            } 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) throws Exception {
        try (Scanner sc = new Scanner(System.in)) {
            int N = sc.nextInt();
            int M = sc.nextInt();

            int L_MAX = 0;
            int R_MIN = N + 1;
            for (int i = 0; i < M; i++) {
                L_MAX = Math.max(L_MAX, sc.nextInt());
                R_MIN = Math.min(R_MIN, sc.nextInt());
            }

            if (L_MAX <= R_MIN) {
                System.out.println(R_MIN - L_MAX + 1);
            } else {
                System.out.println(0);
            }
        }
    }

} public class Main {

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

            int L_MAX = 0;
            int R_MIN = N + 1;
            for (int i = 0; i < M; i++) {
                L_MAX = Math.max(L_MAX, sc.nextInt());
                R_MIN = Math.min(R_MIN, sc.nextInt());
            }

            if (L_MAX <= R_MIN) {
                System.out.println(R_MIN - L_MAX + 1);
            } else {
                System.out.println(0);
            }
        }
    }

} Main
import java.util.Scanner;

/**
 * Prison
 */
public class Main {

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

            int L_MAX = 0;
            int R_MIN = N + 1;
            for (int i = 0; i < M; i++) {
                L_MAX = Math.max(L_MAX, sc.nextInt());
                R_MIN = Math.min(R_MIN, sc.nextInt());
            }

            if (L_MAX <= R_MIN) {
                System.out.println(R_MIN - L_MAX + 1);
            } else {
                System.out.println(0);
            }
        }
    }

}
