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.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.Scanner;

public class D {
    private static StreamTokenizer in;
    private static PrintWriter out;
    private static BufferedReader inB;
    
    private static int nextInt() throws Exception{
        in.nextToken();
        return (int)in.nval;
    }
    
    private static String nextString() throws Exception{
        in.nextToken();
        return in.sval;
    }
    
    static{
        inB = new BufferedReader(new InputStreamReader(System.in));
        in = new StreamTokenizer(inB);
        out = new PrintWriter(System.out);
    }
    
    public static void main(String[] args)throws Exception {
        Scanner inS = new Scanner(System.in);
        long n = inS.nextLong(), k = inS.nextLong();
        int p = inS.nextInt();
        
        boolean first = n > k*2;
        
        for(int i = 0; i<p; i++) {
            long cur = inS.nextLong();
            if(first) {
                if(cur <= n-k) {
                    out.print('.');
                } else {
                    out.print('X');
                }
            } else {
                if(cur <= k*2) {
                    out.print((cur&1) == 1 ? '.' : 'X');
                } else {
                    out.print('X');
                }
            }
        }
        out.println();
        out.flush();
    }
    
}
