process.stdin.resume();
process.stdin.setEncoding('utf8');

var input_lines = []; // 標準入力から与えられた各行を保存する変数：input_lines
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
reader.on('line', (line) => {
  input_lines.push(line);
});
reader.on('close', () => {
// 取得した値を標準出力するために"XXXXXX"をどう書き換える？
// ヒント: input_lines[0]に1行目の値が保存されている
  const a = Number(input_lines[0].split(' ')[0]);
  const b = Number(input_lines[0].split(' ')[1]);
  const c = Number(input_lines[0].split(' ')[2]);
  const d = Number(input_lines[0].split(' ')[3]);

  if(c<a){
    if(d<=a){
      console.log(0);
    } else if(d>=a && d<b){
      console.log(d-a);
    } else if(c>=b){
      console.log(b-a);
    }
  } else if(c>=a && c<b){
    if(d>=a && d<b){
      console.log(d-c);
    } else if(d>=b){
      console.log(b-c);
    }    
  } else if(c>=b){
    console.log(0);
  }
});