import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main
{

	public static void main(String[] args) throws IOException
	{
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = br.readLine();
		int A = Integer.parseInt(str.substring(0, str.indexOf(" ")));
		int B = Integer.parseInt(str.substring(str.indexOf(" ") + 1,str.indexOf(" ", str.indexOf(" ") + 1)));
		int C = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ") + 1) + 1,str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1)));
		int D = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1) + 1));
		//System.out.println(A + " " + B + " " + C + " " + D);
		int E = 0;
		if(A < C) E = C;
		else E = A;
		int F = 0;
		if(B > D) F = D;
		else F = B;
		if(F - E < 0) System.out.println("0");
		else System.out.println(F - E);
	}

} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main
{

	public static void main(String[] args) throws IOException
	{
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = br.readLine();
		int A = Integer.parseInt(str.substring(0, str.indexOf(" ")));
		int B = Integer.parseInt(str.substring(str.indexOf(" ") + 1,str.indexOf(" ", str.indexOf(" ") + 1)));
		int C = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ") + 1) + 1,str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1)));
		int D = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1) + 1));
		//System.out.println(A + " " + B + " " + C + " " + D);
		int E = 0;
		if(A < C) E = C;
		else E = A;
		int F = 0;
		if(B > D) F = D;
		else F = B;
		if(F - E < 0) System.out.println("0");
		else System.out.println(F - E);
	}

} Main public static void main(String[] args) throws IOException
	{
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = br.readLine();
		int A = Integer.parseInt(str.substring(0, str.indexOf(" ")));
		int B = Integer.parseInt(str.substring(str.indexOf(" ") + 1,str.indexOf(" ", str.indexOf(" ") + 1)));
		int C = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ") + 1) + 1,str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1)));
		int D = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1) + 1));
		//System.out.println(A + " " + B + " " + C + " " + D);
		int E = 0;
		if(A < C) E = C;
		else E = A;
		int F = 0;
		if(B > D) F = D;
		else F = B;
		if(F - E < 0) System.out.println("0");
		else System.out.println(F - E);
	} main {
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = br.readLine();
		int A = Integer.parseInt(str.substring(0, str.indexOf(" ")));
		int B = Integer.parseInt(str.substring(str.indexOf(" ") + 1,str.indexOf(" ", str.indexOf(" ") + 1)));
		int C = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ") + 1) + 1,str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1)));
		int D = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1) + 1));
		//System.out.println(A + " " + B + " " + C + " " + D);
		int E = 0;
		if(A < C) E = C;
		else E = A;
		int F = 0;
		if(B > D) F = D;
		else F = B;
		if(F - E < 0) System.out.println("0");
		else System.out.println(F - E);
	} BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) String str = br.readLine(); str br.readLine() br.readLine br int A = Integer.parseInt(str.substring(0, str.indexOf(" "))); A Integer.parseInt(str.substring(0, str.indexOf(" "))) Integer.parseInt Integer str.substring(0, str.indexOf(" ")) str.substring str 0 str.indexOf(" ") str.indexOf str " " int B = Integer.parseInt(str.substring(str.indexOf(" ") + 1,str.indexOf(" ", str.indexOf(" ") + 1))); B Integer.parseInt(str.substring(str.indexOf(" ") + 1,str.indexOf(" ", str.indexOf(" ") + 1))) Integer.parseInt Integer str.substring(str.indexOf(" ") + 1,str.indexOf(" ", str.indexOf(" ") + 1)) str.substring str str.indexOf(" ") + 1 str.indexOf(" ") str.indexOf str " " 1 str.indexOf(" ", str.indexOf(" ") + 1) str.indexOf str " " str.indexOf(" ") + 1 str.indexOf(" ") str.indexOf str " " 1 int C = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ") + 1) + 1,str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1))); C Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ") + 1) + 1,str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1))) Integer.parseInt Integer str.substring(str.indexOf(" ", str.indexOf(" ") + 1) + 1,str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1)) str.substring str str.indexOf(" ", str.indexOf(" ") + 1) + 1 str.indexOf(" ", str.indexOf(" ") + 1) str.indexOf str " " str.indexOf(" ") + 1 str.indexOf(" ") str.indexOf str " " 1 1 str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1) str.indexOf str " " str.indexOf(" ", str.indexOf(" ") + 1) + 1 str.indexOf(" ", str.indexOf(" ") + 1) str.indexOf str " " str.indexOf(" ") + 1 str.indexOf(" ") str.indexOf str " " 1 1 int D = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1) + 1)); D Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1) + 1)) Integer.parseInt Integer str.substring(str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1) + 1) str.substring str str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1) + 1 str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1) str.indexOf str " " str.indexOf(" ", str.indexOf(" ") + 1) + 1 str.indexOf(" ", str.indexOf(" ") + 1) str.indexOf str " " str.indexOf(" ") + 1 str.indexOf(" ") str.indexOf str " " 1 1 1 int E = 0; E 0 if(A < C) E = C;
		else E = A; A < C A C E = C E C E = A E A int F = 0; F 0 if(B > D) F = D;
		else F = B; B > D B D F = D F D F = B F B if(F - E < 0) System.out.println("0");
		else System.out.println(F - E); F - E < 0 F - E F E 0 System.out.println("0") System.out.println System.out System System.out "0" System.out.println(F - E) System.out.println System.out System System.out F - E F E String[] args args public class Main
{

	public static void main(String[] args) throws IOException
	{
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = br.readLine();
		int A = Integer.parseInt(str.substring(0, str.indexOf(" ")));
		int B = Integer.parseInt(str.substring(str.indexOf(" ") + 1,str.indexOf(" ", str.indexOf(" ") + 1)));
		int C = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ") + 1) + 1,str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1)));
		int D = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1) + 1));
		//System.out.println(A + " " + B + " " + C + " " + D);
		int E = 0;
		if(A < C) E = C;
		else E = A;
		int F = 0;
		if(B > D) F = D;
		else F = B;
		if(F - E < 0) System.out.println("0");
		else System.out.println(F - E);
	}

} public class Main
{

	public static void main(String[] args) throws IOException
	{
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = br.readLine();
		int A = Integer.parseInt(str.substring(0, str.indexOf(" ")));
		int B = Integer.parseInt(str.substring(str.indexOf(" ") + 1,str.indexOf(" ", str.indexOf(" ") + 1)));
		int C = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ") + 1) + 1,str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1)));
		int D = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1) + 1));
		//System.out.println(A + " " + B + " " + C + " " + D);
		int E = 0;
		if(A < C) E = C;
		else E = A;
		int F = 0;
		if(B > D) F = D;
		else F = B;
		if(F - E < 0) System.out.println("0");
		else System.out.println(F - E);
	}

} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main
{

	public static void main(String[] args) throws IOException
	{
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = br.readLine();
		int A = Integer.parseInt(str.substring(0, str.indexOf(" ")));
		int B = Integer.parseInt(str.substring(str.indexOf(" ") + 1,str.indexOf(" ", str.indexOf(" ") + 1)));
		int C = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ") + 1) + 1,str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1)));
		int D = Integer.parseInt(str.substring(str.indexOf(" ", str.indexOf(" ", str.indexOf(" ") + 1) + 1) + 1));
		//System.out.println(A + " " + B + " " + C + " " + D);
		int E = 0;
		if(A < C) E = C;
		else E = A;
		int F = 0;
		if(B > D) F = D;
		else F = B;
		if(F - E < 0) System.out.println("0");
		else System.out.println(F - E);
	}

}
