import java.util.Scanner;

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();

        int result = Math.min(B,D) - Math.max(A,C);
        System.out.println(result >= 0 ?  result : 0);
    }

} import java.util.Scanner; Scanner 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();

        int result = Math.min(B,D) - Math.max(A,C);
        System.out.println(result >= 0 ?  result : 0);
    }

} 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();

        int result = Math.min(B,D) - Math.max(A,C);
        System.out.println(result >= 0 ?  result : 0);
    } main {
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int D = sc.nextInt();

        int result = Math.min(B,D) - Math.max(A,C);
        System.out.println(result >= 0 ?  result : 0);
    } 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 int result = Math.min(B,D) - Math.max(A,C); result Math.min(B,D) - Math.max(A,C) Math.min(B,D) Math.min Math B D Math.max(A,C) Math.max Math A C System.out.println(result >= 0 ?  result : 0) System.out.println System.out System System.out result >= 0 ?  result : 0 result >= 0 result 0 result 0 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();

        int result = Math.min(B,D) - Math.max(A,C);
        System.out.println(result >= 0 ?  result : 0);
    }

} 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();

        int result = Math.min(B,D) - Math.max(A,C);
        System.out.println(result >= 0 ?  result : 0);
    }

} Main
import java.util.Scanner;

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();

        int result = Math.min(B,D) - Math.max(A,C);
        System.out.println(result >= 0 ?  result : 0);
    }

}
