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.PrintWriter;
import java.util.Locale;
import java.util.Scanner;

public class C implements Runnable {
    private Scanner in;
    private PrintWriter out;

    private void solve() {
        long n = in.nextLong();
        long k = in.nextLong();
        int p = in.nextInt();
        long dots = n - k;
        for (int i = 0; i < p; ++i) {
            long cur = in.nextLong();
            if (n % 2 == 1 && k == 2) {
                out.print(cur >= n - 1 ? 'X' : '.');
            } else if (dots > k) {
                if (cur <= dots - k) {
                    out.print('.');
                } else {
                    out.print((cur - (dots - k)) % 2 == 1 ? '.' : 'X');
                }
            } else {
                if (cur > 2 * dots) {
                    out.print('X');
                } else {
                    out.print(cur % 2 == 1 ? '.' : 'X');
                }
            }
        }
    }

    @Override
    public void run() {
        Locale.setDefault(Locale.US);
        in = new Scanner(System.in);
        out = new PrintWriter(System.out);
        solve();
        in.close();
        out.close();
    }

    public static void main(String[] args) {
        new C().run();
    }
}
