#include <bits/stdc++.h>
using namespace std;
template <typename TYPE>
inline TYPE sqr(const TYPE& a) {
  return (a) * (a);
}
const int INF = 1000 * 1000 * 1000;
const long double EPS = 1e-9;
const long double PI = 2 * acos(0.0);
const int N = 105;
void go(int p, long long z0, long long kend) {
  for (int i = 0; i < int(p); ++i) {
    long long x;
    cin >> x;
    --x;
    if (x < z0) {
      printf(".");
    } else if (x < kend) {
      if ((x - kend) & 1)
        printf(".");
      else
        printf("X");
    } else {
      printf("X");
    }
  }
  exit(0);
}
int main() {
  long long n, k;
  int p;
  cin >> n >> k >> p;
  long long z = n - k;
  if (k == 0) {
    for (int i = 0; i < int(p); ++i) printf(".");
    return 0;
  }
  if (k == n) {
    for (int i = 0; i < int(p); ++i) printf("X");
    return 0;
  }
  long long k1 = k - 1;
  long long z1 = z - 1;
  if (z & 1) {
    long long z2 = z1 / 2;
    long long k2 = k1 / 2;
    long long pc = min(z2, k2);
    long long z0 = z - pc * 2;
    long long kend = n - (k - pc * 2);
    go(p, z0, kend);
    for (int i = 0; i < int(z0); ++i) printf(".");
    for (int i = 0; i < int(pc); ++i) printf("X.X.");
    for (int i = kend; i < n; ++i) printf("X");
    return 0;
  } else {
    long long c = min(z1, k1);
    if (c) {
      long long z2 = (z1 - 1) / 2;
      long long k2 = (k1 - 1) / 2;
      long long pc = min(z2, k2);
      long long z0 = z1 - pc * 2;
      long long kend = n - (k1 - pc * 2);
      go(p, z0, kend);
      for (int i = 0; i < int(z0); ++i) printf(".");
      long long cnt = 1 + pc * 2;
      for (int i = 0; i < int(cnt); ++i) printf("X.");
      for (int i = kend; i < n; ++i) printf("X");
      return 0;
    } else {
      go(p, z, z);
      for (int i = 0; i < int(z); ++i) printf(".");
      for (int i = 0; i < int(k); ++i) printf("X");
      return 0;
    }
  }
  return 0;
}
