There are N integers X_1, X_2, \cdots, X_N, and we know that A_i \leq X_i \leq B_i. Find the number of different values that the median of X_1, X_2, \cdots, X_N can take.

Constraints

* 2 \leq N \leq 2 \times 10^5
* 1 \leq A_i \leq B_i \leq 10^9
* All values in input are integers.

Input

Input is given from Standard Input in the following format:


N
A_1 B_1
A_2 B_2
:
A_N B_N


Output

Print the answer.

Examples

Input

2
1 2
2 3


Output

3


Input

3
100 100
10 10000
1 1000000000


Output

9991
import java.lang.reflect.Array;
import java.math.BigInteger;
import java.util.*;
import java.util.stream.Collectors;

public class Main {
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    ArrayList<Long> a = new ArrayList<>();
    ArrayList<Long> b = new ArrayList<>();
    for (int i = 0; i < n; i++) {
      a.add(sc.nextLong());
      b.add(sc.nextLong());
    }
    List<Long> sortedA = a.stream().sorted(Comparator.naturalOrder()).collect(Collectors.toList());
    List<Long> sortedB = b.stream().sorted(Comparator.naturalOrder()).collect(Collectors.toList());
    if (n % 2 == 0) {
      double minD = ((double) (sortedA.get(n / 2 - 1) + sortedA.get(n / 2))) / 2;
      double maxD = ((double) (sortedB.get(n / 2 - 1) + sortedB.get(n / 2))) / 2;
      System.out.println((long) (2 * (maxD - minD) + 1));
    } else {
      long minD = sortedA.get((n + 1) / 2 - 1);
      long maxD = sortedB.get((n + 1) / 2 - 1);
      System.out.println(maxD - minD + 1);
    }
  }
}
