
import java.util.Scanner;

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

		int res=Math.max(Math.min(B, D)-Math.max(A, C), 0);
		System.out.println(res);
	}
} import java.util.Scanner; Scanner java.util class Main{
	public static void main(String[] ag) {
		Scanner sc=new Scanner(System.in);
		int A=sc.nextInt();
		int B=sc.nextInt();
		int C=sc.nextInt();
		int D=sc.nextInt();

		int res=Math.max(Math.min(B, D)-Math.max(A, C), 0);
		System.out.println(res);
	}
} Main public static void main(String[] ag) {
		Scanner sc=new Scanner(System.in);
		int A=sc.nextInt();
		int B=sc.nextInt();
		int C=sc.nextInt();
		int D=sc.nextInt();

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

		int res=Math.max(Math.min(B, D)-Math.max(A, C), 0);
		System.out.println(res);
	} 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 res=Math.max(Math.min(B, D)-Math.max(A, C), 0); res Math.max(Math.min(B, D)-Math.max(A, C), 0) Math.max Math 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 0 System.out.println(res) System.out.println System.out System System.out res String[] ag ag

import java.util.Scanner;

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

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