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 start=Math.max(a,c);
    int end=Math.min(b,d);
    int time=0;
    if(start<=end){
      time=end-start;
    }
    System.out.println(time);
  }
} 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 start=Math.max(a,c);
    int end=Math.min(b,d);
    int time=0;
    if(start<=end){
      time=end-start;
    }
    System.out.println(time);
  }
} 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 start=Math.max(a,c);
    int end=Math.min(b,d);
    int time=0;
    if(start<=end){
      time=end-start;
    }
    System.out.println(time);
  } 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 start=Math.max(a,c);
    int end=Math.min(b,d);
    int time=0;
    if(start<=end){
      time=end-start;
    }
    System.out.println(time);
  } 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 start=Math.max(a,c); start Math.max(a,c) Math.max Math a c int end=Math.min(b,d); end Math.min(b,d) Math.min Math b d int time=0; time 0 if(start<=end){
      time=end-start;
    } start<=end start end {
      time=end-start;
    } time=end-start time end-start end start System.out.println(time) System.out.println System.out System System.out time 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 start=Math.max(a,c);
    int end=Math.min(b,d);
    int time=0;
    if(start<=end){
      time=end-start;
    }
    System.out.println(time);
  }
} 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 start=Math.max(a,c);
    int end=Math.min(b,d);
    int time=0;
    if(start<=end){
      time=end-start;
    }
    System.out.println(time);
  }
} 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 start=Math.max(a,c);
    int end=Math.min(b,d);
    int time=0;
    if(start<=end){
      time=end-start;
    }
    System.out.println(time);
  }
}