fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let n: usize = n.trim().parse().unwrap(); let mut result: Vec = vec![0; 4 * 1e5 as usize + 2]; for _ in 0..n { let mut xr = String::new(); std::io::stdin().read_line(&mut xr).ok(); let xr: Vec = xr.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let x = (xr[0] + 2 * 1e5 as isize) as usize; let r = xr[1] as usize; result[x-r] += 1; result[x+r+1] -= 1; } for i in 0..result.len()-1 { result[i+1] += result[i]; } println!("{}", result.iter().max().unwrap()); }