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

#include <bits/stdc++.h>
using namespace std;
long long i, t, q;
int main() {
  long long n, k, p, x;
  cin >> n >> k >> p;
  long long mn = (n - k + 1) / 2;
  long long _n = n, _k = k;
  if (n & 1) n--, k--;
  long long alt = min(n / 2, k);
  if (alt < k) alt -= k - alt;
  alt += (n - k - alt) / 2;
  n = _n, k = _k;
  if (mn >= alt) {
    while (p--) {
      cin >> x;
      cout << (x <= n - k ? '.' : 'X');
    }
  } else {
    while (p--) {
      cin >> x;
      if (n & 1) {
        n--;
        k--;
        t = min(n / 2, k);
        q = k - t;
        long long qpos = n - q * 2;
        long long tpos = n - t * 2 + 1;
        if (x >= qpos)
          cout << "X";
        else if (x >= tpos && (((x - 1) & 1) ^ (n & 1)))
          cout << "X";
        else
          cout << ".";
      } else {
        t = min(n / 2, k);
        q = k - t;
        long long qpos = n - q * 2;
        long long tpos = n - t * 2 + 1;
        if (x >= qpos)
          cout << "X";
        else if (x >= tpos && (((x - 1) & 1) ^ (n & 1)))
          cout << "X";
        else
          cout << ".";
      }
    }
  }
  cout << endl;
}
