import java.io.*; import java.util.*; import java.util.stream.*; // 処理 class Process { private int[] X; private int[] Y; Process(int[] X, int[] Y) { this.X = X; this.Y = Y; } int getResult() { int difference = -1; for(int i = 0; i < X.length; i++) { if(X[i] >= Y[i]) { return -1; } if(difference == -1) { difference = (Y[i] - X[i]); continue; } if((Y[i] - X[i]) != difference) { return -1; } } return difference; } } public class Main { public static void main(String[] args) throws IOException { var bufferedReader = new BufferedReader(new InputStreamReader(System.in)); var printWriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out))); // 入力 int N = Integer.parseInt(bufferedReader.readLine().trim()); var X = new int[N]; var Y = new int[N]; for(int i = 0; i < N; i++) { int[] input = Stream.of(bufferedReader.readLine().trim().split("[ ]+")).mapToInt(Integer::parseInt).toArray(); X[i] = input[0]; Y[i] = input[1]; } // 出力 printWriter.println((new Process(X, Y)).getResult()); bufferedReader.close(); printWriter.close(); } }