import java.util.*;

public class Main {
    public static void main(String... args) {
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int D = sc.nextInt();
        sc.close();

        int ans = 0;

        if (B <= C || D <= A) {
            // not overlay
        } else if ((B > C) && (A < C)) {
            ans = B <= D ? B - C : D - C;
        } else {
            ans = D <= B ? D - A : B - A;
        }

        System.out.println(ans);
    }
} import java.util.*; util.* java public class Main {
    public static void main(String... args) {
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int D = sc.nextInt();
        sc.close();

        int ans = 0;

        if (B <= C || D <= A) {
            // not overlay
        } else if ((B > C) && (A < C)) {
            ans = B <= D ? B - C : D - C;
        } else {
            ans = D <= B ? D - A : B - A;
        }

        System.out.println(ans);
    }
} Main public static void main(String... args) {
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int D = sc.nextInt();
        sc.close();

        int ans = 0;

        if (B <= C || D <= A) {
            // not overlay
        } else if ((B > C) && (A < C)) {
            ans = B <= D ? B - C : D - C;
        } else {
            ans = D <= B ? D - A : B - A;
        }

        System.out.println(ans);
    } main {
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int D = sc.nextInt();
        sc.close();

        int ans = 0;

        if (B <= C || D <= A) {
            // not overlay
        } else if ((B > C) && (A < C)) {
            ans = B <= D ? B - C : D - C;
        } else {
            ans = D <= B ? D - A : B - A;
        }

        System.out.println(ans);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int A = sc.nextInt(); A sc.nextInt() sc.nextInt sc int B = sc.nextInt(); B sc.nextInt() sc.nextInt sc int C = sc.nextInt(); C sc.nextInt() sc.nextInt sc int D = sc.nextInt(); D sc.nextInt() sc.nextInt sc sc.close() sc.close sc int ans = 0; ans 0 if (B <= C || D <= A) {
            // not overlay
        } else if ((B > C) && (A < C)) {
            ans = B <= D ? B - C : D - C;
        } else {
            ans = D <= B ? D - A : B - A;
        } B <= C || D <= A B <= C B C D <= A D A {
            // not overlay
        } if ((B > C) && (A < C)) {
            ans = B <= D ? B - C : D - C;
        } else {
            ans = D <= B ? D - A : B - A;
        } (B > C) && (A < C) (B > C) B C (A < C) A C {
            ans = B <= D ? B - C : D - C;
        } ans = B <= D ? B - C : D - C ans B <= D ? B - C : D - C B <= D B D B - C B C D - C D C {
            ans = D <= B ? D - A : B - A;
        } ans = D <= B ? D - A : B - A ans D <= B ? D - A : B - A D <= B D B D - A D A B - A B A System.out.println(ans) System.out.println System.out System System.out ans String... args args public class Main {
    public static void main(String... args) {
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int D = sc.nextInt();
        sc.close();

        int ans = 0;

        if (B <= C || D <= A) {
            // not overlay
        } else if ((B > C) && (A < C)) {
            ans = B <= D ? B - C : D - C;
        } else {
            ans = D <= B ? D - A : B - A;
        }

        System.out.println(ans);
    }
} public class Main {
    public static void main(String... args) {
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int D = sc.nextInt();
        sc.close();

        int ans = 0;

        if (B <= C || D <= A) {
            // not overlay
        } else if ((B > C) && (A < C)) {
            ans = B <= D ? B - C : D - C;
        } else {
            ans = D <= B ? D - A : B - A;
        }

        System.out.println(ans);
    }
} Main
import java.util.*;

public class Main {
    public static void main(String... args) {
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int D = sc.nextInt();
        sc.close();

        int ans = 0;

        if (B <= C || D <= A) {
            // not overlay
        } else if ((B > C) && (A < C)) {
            ans = B <= D ? B - C : D - C;
        } else {
            ans = D <= B ? D - A : B - A;
        }

        System.out.println(ans);
    }
}