Petya and Vasya are inventing a new game that requires a rectangular board and one chess piece. At the beginning of the game the piece stands in the upper-left corner of the board. Two players move the piece in turns. Each turn the chess piece can be moved either one square to the right or one square down or jump k squares diagonally down and to the right. The player who can’t move the piece loses. 

<image>

The guys haven’t yet thought what to call the game or the best size of the board for it. Your task is to write a program that can determine the outcome of the game depending on the board size.

Input

The first input line contains two integers t and k (1 ≤ t ≤ 20, 1 ≤ k ≤ 109). Each of the following t lines contains two numbers n, m — the board’s length and width (1 ≤ n, m ≤ 109).

Output

Output t lines that can determine the outcomes of the game on every board. Write «+» if the first player is a winner, and «-» otherwise.

Examples

Input

10 2
1 1
1 2
2 1
2 2
1 3
2 3
3 1
3 2
3 3
4 3


Output

-
+
+
-
-
+
-
+
+
+
//package cf36;

import java.util.*;
import java.io.*;

public class A {
	public static void main(String[] args) throws Exception {
		PrintStream out = new PrintStream("output.txt");
		Scanner sc = new Scanner(new File("input.txt"));
		int t = sc.nextInt();
		int k = sc.nextInt();
		for (int i=0; i<t; i++) {
			int n = sc.nextInt();
			int m = sc.nextInt();
			if (k!=1) {
				int min = Math.min(n, m);
				if (min % (k + 1) == 0) {
					out.println('+');
				} else {
					boolean tmp = (min / (k + 1)) % 2 == 0 ? false : true;
					int max = Math.max(n, m);
					if ((max - min) % 2 == 1)
						tmp = !tmp;
					if (tmp)
						out.println('+');
					else
						out.println('-');
				}
			}
			else {
				if (m%2==1 && n%2==1)
					out.println('-');
				else
					out.println('+');
			}
		}
		out.close();
	}
}
