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 <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <queue>
#include <vector>
#include <stack>
#include <cctype>
#include <map>
#include <string>
using namespace std;
__int64 z[1005];
int main(int argc, char *argv[])
{
	__int64 n,k,p;
	while(scanf("%I64d%I64d%I64d",&n,&k,&p)!=EOF)
	{
		for(int i=0;i<p;i++)scanf("%d",z+i);
		char ch[2000];
		int u=0;
		for(int i=0;i<p;i++)
		{
			if(k==0)ch[i]='.';
			else if(n%2==0)
			{
				if(z[i]%2==1)ch[i]='.';
				else 
				{
					if(z[i]/2<(n/2-k))ch[i]='.';
					else ch[i]='X';
				}
			}
			else 
			{
				if(z[i]<=n-k)ch[i]='.';
				else ch[i]='X';
			}
		}
		for(int i=0;i<p;i++)printf("%c",ch[i]);
		printf("\n");
	}
	return 0;
}
