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();
		sc.close();
		if(A <= C) {
			if(D <= B) {
				System.out.println(D - C);
			}else if(C <= B) {
				System.out.println(B - C);
			}else {
				System.out.println(0);
			}
		}else {
			if(D <= A) {
				System.out.println(0);
			}else if(D >= B) {
				System.out.println(B - A);
			}else if(D >= A) {
				System.out.println(D - A);
			}
		}
	}
} 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();
		sc.close();
		if(A <= C) {
			if(D <= B) {
				System.out.println(D - C);
			}else if(C <= B) {
				System.out.println(B - C);
			}else {
				System.out.println(0);
			}
		}else {
			if(D <= A) {
				System.out.println(0);
			}else if(D >= B) {
				System.out.println(B - A);
			}else if(D >= A) {
				System.out.println(D - A);
			}
		}
	}
} 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();
		if(A <= C) {
			if(D <= B) {
				System.out.println(D - C);
			}else if(C <= B) {
				System.out.println(B - C);
			}else {
				System.out.println(0);
			}
		}else {
			if(D <= A) {
				System.out.println(0);
			}else if(D >= B) {
				System.out.println(B - A);
			}else if(D >= A) {
				System.out.println(D - A);
			}
		}
	} 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();
		if(A <= C) {
			if(D <= B) {
				System.out.println(D - C);
			}else if(C <= B) {
				System.out.println(B - C);
			}else {
				System.out.println(0);
			}
		}else {
			if(D <= A) {
				System.out.println(0);
			}else if(D >= B) {
				System.out.println(B - A);
			}else if(D >= A) {
				System.out.println(D - A);
			}
		}
	} 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 if(A <= C) {
			if(D <= B) {
				System.out.println(D - C);
			}else if(C <= B) {
				System.out.println(B - C);
			}else {
				System.out.println(0);
			}
		}else {
			if(D <= A) {
				System.out.println(0);
			}else if(D >= B) {
				System.out.println(B - A);
			}else if(D >= A) {
				System.out.println(D - A);
			}
		} A <= C A C {
			if(D <= B) {
				System.out.println(D - C);
			}else if(C <= B) {
				System.out.println(B - C);
			}else {
				System.out.println(0);
			}
		} if(D <= B) {
				System.out.println(D - C);
			}else if(C <= B) {
				System.out.println(B - C);
			}else {
				System.out.println(0);
			} D <= B D B {
				System.out.println(D - C);
			} System.out.println(D - C) System.out.println System.out System System.out D - C D C if(C <= B) {
				System.out.println(B - C);
			}else {
				System.out.println(0);
			} C <= B C B {
				System.out.println(B - C);
			} System.out.println(B - C) System.out.println System.out System System.out B - C B C {
				System.out.println(0);
			} System.out.println(0) System.out.println System.out System System.out 0 {
			if(D <= A) {
				System.out.println(0);
			}else if(D >= B) {
				System.out.println(B - A);
			}else if(D >= A) {
				System.out.println(D - A);
			}
		} if(D <= A) {
				System.out.println(0);
			}else if(D >= B) {
				System.out.println(B - A);
			}else if(D >= A) {
				System.out.println(D - A);
			} D <= A D A {
				System.out.println(0);
			} System.out.println(0) System.out.println System.out System System.out 0 if(D >= B) {
				System.out.println(B - A);
			}else if(D >= A) {
				System.out.println(D - A);
			} D >= B D B {
				System.out.println(B - A);
			} System.out.println(B - A) System.out.println System.out System System.out B - A B A if(D >= A) {
				System.out.println(D - A);
			} D >= A D A {
				System.out.println(D - A);
			} System.out.println(D - A) System.out.println System.out System System.out D - A D A 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();
		if(A <= C) {
			if(D <= B) {
				System.out.println(D - C);
			}else if(C <= B) {
				System.out.println(B - C);
			}else {
				System.out.println(0);
			}
		}else {
			if(D <= A) {
				System.out.println(0);
			}else if(D >= B) {
				System.out.println(B - A);
			}else if(D >= A) {
				System.out.println(D - A);
			}
		}
	}
} 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();
		if(A <= C) {
			if(D <= B) {
				System.out.println(D - C);
			}else if(C <= B) {
				System.out.println(B - C);
			}else {
				System.out.println(0);
			}
		}else {
			if(D <= A) {
				System.out.println(0);
			}else if(D >= B) {
				System.out.println(B - A);
			}else if(D >= A) {
				System.out.println(D - A);
			}
		}
	}
} 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();
		sc.close();
		if(A <= C) {
			if(D <= B) {
				System.out.println(D - C);
			}else if(C <= B) {
				System.out.println(B - C);
			}else {
				System.out.println(0);
			}
		}else {
			if(D <= A) {
				System.out.println(0);
			}else if(D >= B) {
				System.out.println(B - A);
			}else if(D >= A) {
				System.out.println(D - A);
			}
		}
	}
}
