7 7 7
1
2
3
4
5
6
7
 4 2 8
1
3
4
2
3
4
1
2
 9 4 9
1
2
3
4
5
6
7
8
9
 7 5 7
1
2
3
4
5
6
7
 15 10 15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 4 0 4
1
2
3
4
 12 2 12
1
2
3
4
5
6
7
8
9
10
11
12
 10 2 10
1
2
3
4
5
6
7
8
9
10
 7 4 7
1
2
3
4
5
6
7
 7 3 7
1
2
3
4
5
6
7

XXXXXXX
 ..XX.X.X
 ...X.X.XX
 .X.XXXX
 .X.X.X.X.XXXXXX
 ....
 .........X.X
 .......X.X
 .X.X.XX
 ...X.XX

import java.util.*;
public class RussianRoulette {
	static HashMap<Long, Boolean> H = new HashMap<Long,Boolean>();
	public static void main (String [] arg) {
		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();
		long k = sc.nextLong();
		int p = sc.nextInt();
		long [] q = new long [p];
		for (int i = 0; i<p; ++i) q[i] = sc.nextLong();
		
		if (k > n/2 && n%2 == 1) {
			H.put(n, (k != 0));
			n--;
			k--;
		}
		H.put(n, (k != 0));
		H.put(1L, (k == n));
		long KLIMIT = n - 2*k + 2;
		if (KLIMIT >= 1 && KLIMIT <= n-2 && (n-2*k+1)%2 == 0) {
			H.put(n, (k!=0));
			n--;
			k--;
		}
		StringBuilder b = new StringBuilder();
		for (int i = 0; i<p; ++i) {
			if (H.containsKey(q[i])) {
				b = b.append( H.get(q[i]) ? 'X' : '.');
				continue;
			}
			char ans = '0';
			if (k <= n/2) {
				if (q[i] < KLIMIT)
					ans = '.';
				else
					ans = (n % 2 == q[i] % 2) ? 'X' : '.';
			} else {
				long KLIMIT2 = n - 2*(k - n/2) + 1;
				//System.err.println(KLIMIT2);
				ans = (q[i] >= KLIMIT2 || q[i] % 2 == n % 2) ? 'X' : '.';
			}
			b = b.append(ans);
		}
		System.out.println(b.toString().replaceAll("x","X"));
		
		
	}
}