description: <image>
  
  William has two numbers a and b initially both equal to zero. William mastered performing three different operations with them quickly. Before performing each operation some positive integer k is picked, which is then used to perform one of the following operations: (note, that for each operation you can choose a new positive integer k)
  
    1. add number k to both a and b, or 
    2. add number k to a and subtract k from b, or 
    3. add number k to b and subtract k from a. 
  
  
  
  Note that after performing operations, numbers a and b may become negative as well.
  
  William wants to find out the minimal number of operations he would have to perform to make a equal to his favorite number c and b equal to his second favorite number d.
  
  Input
  
  Each test contains multiple test cases. The first line contains the number of test cases t (1 ≤ t ≤ 10^4). Description of the test cases follows.
  
  The only line of each test case contains two integers c and d (0 ≤ c, d ≤ 10^9), which are William's favorite numbers and which he wants a and b to be transformed into.
  
  Output
  
  For each test case output a single number, which is the minimal number of operations which William would have to perform to make a equal to c and b equal to d, or -1 if it is impossible to achieve this using the described operations.
  
  Example
  
  Input
  
  
  6
  1 2
  3 5
  5 3
  6 6
  8 0
  0 0
  
  
  Output
  
  
  -1
  2
  2
  1
  2
  0
  
  Note
  
  Let us demonstrate one of the suboptimal ways of getting a pair (3, 5):
  
    * Using an operation of the first type with k=1, the current pair would be equal to (1, 1). 
    * Using an operation of the third type with k=8, the current pair would be equal to (-7, 9). 
    * Using an operation of the second type with k=7, the current pair would be equal to (0, 2). 
    * Using an operation of the first type with k=3, the current pair would be equal to (3, 5). 
solution: 
  import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStreamReader;
  import java.util.StringTokenizer;
  
  public class MochaAndMath {
      static class FastReader {
          BufferedReader bf;
          StringTokenizer st;
  
          public FastReader() {
              bf = new BufferedReader(new InputStreamReader(System.in));
          }
  
          String next() {
              while (st == null || !st.hasMoreElements()) {
                  try {
                      st = new StringTokenizer(bf.readLine());
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
              }
              return st.nextToken();
          }
  
          int nextInt() {
              return Integer.parseInt(next());
          }
  
          float nextFloat() {
              return Float.parseFloat(next());
          }
  
          long nextLong() {
              return Long.parseLong(next());
          }
  
          double nextDouble() {
              return Double.parseDouble(next());
          }
  
          String nextLine() {
              String str = "";
              try {
                  str = bf.readLine();
              } catch (IOException e) {
                  e.printStackTrace();
              }
              return str;
          }
      }
  
      public static void main(String[] args) {
          FastReader sc = new FastReader();
          int t = sc.nextInt();
          for (int l = 0; l < t; l++) {
  //            int n = sc.nextInt();
  //            int ans = sc.nextInt();
  //            for (int i = 1; i < n; i++)
  //                ans = ans & sc.nextInt();
  //            System.out.println(ans);
  
  
  //            int k = sc.nextInt();
  //            int c = 1;
  //            int ans = 0;
  //            for (int i = 0; i < k; ) {
  //                if (c % 10 == 3 || c % 3 == 0) {
  //                    c++;
  //                } else {
  //                    i++;
  //                    ans = c;
  //                    c++;
  //                }
  //            }
  //            System.out.println(ans);
  
  
              // B. Who's Opposite?
  
  //            int a = sc.nextInt();
  //            int b = sc.nextInt();
  //            int c = sc.nextInt();
  //
  //            int diff = Math.abs(a - b) - 1;
  //            int total = 2 + diff * 2;
  //
  //            if (a > total || b > total || c > total)
  //                System.out.println("-1");
  //            else {
  //                int tar1 = c - diff - 1;
  //                int tar2 = c + diff + 1;
  //
  //                if (tar1 >= 1)
  //                    System.out.println(tar1);
  //                else if (tar2 <= total)
  //                    System.out.println(tar2);
  //                else
  //                    System.out.println("-1");
  //            }
  
  
              // C. Infinity Table
  
  //            int k = sc.nextInt();
  //            int n = (int) Math.ceil(Math.sqrt(k));
  //
  //            int diff = n * n - k;
  //            if (diff < n)
  //                System.out.println(n + " " + (diff + 1));
  //            else
  //                System.out.println((2 * n - diff - 1) + " " + n);
  
  
              // D. Make a Power of Two
  
  //            long[] pow = new long[60];
  //            for (int i = 0; i < 60; i++)
  //                pow[i] = (long) Math.pow(2, i);
  //
  //            int n = sc.nextInt();
  //            String s = String.valueOf(n);
  //            int[] a = new int[s.length()];
  //            int min = Integer.MAX_VALUE;
  //            for (int i = 0; i < pow.length; i++)
  //                min = Math.min(min, compare(s, pow[i]));
  
              int c = sc.nextInt();
              int d = sc.nextInt();
  
              if (c == 0 && c == d)
                  System.out.println("0");
              else if (c == d)
                  System.out.println("1");
              else if (Math.abs(c - d) % 2 != 0)
                  System.out.println("-1");
              else
                  System.out.println("2");
          }
      }
  //
  //    private static int compare(String s1, long l) {
  //        String s2 = String.valueOf(l);
  //        int i = 0, j = 0;
  //        while (s1.length() > j && s2.length() > i) {
  //            if (s1.charAt(j) == s2.charAt(i)) {
  //                i++;
  //                j++;
  //            } else
  //                j++;
  //        }
  //        return s1.length() + s2.length() - 2 * i;
  //    }
  }
  