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;
template <typename T>
T inline SQR(const T& a) {
  return a * a;
}
template <typename T>
T inline ABS(const T& a) {
  return a < 0 ? -a : a;
}
template <typename T>
T inline MIN(const T& a, const T& b) {
  if (a < b) return a;
  return b;
}
template <typename T>
T inline MAX(const T& a, const T& b) {
  if (a > b) return a;
  return b;
}
long long MOD = 1000000007LL;
long long mypow(long long a, long long p) {
  if (p == 0) return 1LL;
  long long ans = mypow(a, p / 2);
  ans *= ans;
  ans %= MOD;
  if (p & 1) return (a * ans) % MOD;
  return ans;
}
int main() {
  ios::sync_with_stdio(false);
  unsigned long long n, k, q;
  bool impar;
  int p;
  cin >> n >> k >> p;
  if (n % 2 != 0) {
    impar = true;
  } else
    impar = false;
  for (int i = 0; i < p; ++i) {
    cin >> q;
    if (impar) {
      if (q >= (n + 1ll - k)) {
        cout << 'X';
      } else
        cout << '.';
    } else {
      if (q >= (n - 2 * (k - 1ll)) && q % 2 == 0) {
        cout << 'X';
      } else
        cout << '.';
    }
  }
  return 0;
}
