#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <locale.h>
char pole[64];
void prn(){
printf("\n");
for (int y=0;y<8;y++){
for (int x=0;x<8;x++)
printf("%S",pole[y*8+x]?L" X":L" -");
printf("\n");
}
printf("\n");
}
void res(){
for (int o=0;o<8;o++)
((long long *)pole)[o]=0;
}
bool e_1(int x,int y){
return (x>=0 and x<=7 and y>=0 and y<=7);
}
void m_1(int x,int y){
for (int i=-10;i<10;i++){
if (e_1(x+i,y+i))pole[(y+i)*8+(x+i)]=1;
if (e_1(x-i,y+i))pole[(y+i)*8+(x-i)]=1;
}
}
void m_2(int x,int y){
for (int _x=0;_x<8;_x++)
for (int _y=0;_y<8;_y++)
pole[_y*8+_x]=abs(_x-x)==abs(_y-y);
}
void m_3(int x,int y){
for (int _x=0;_x<8;_x++){
if (int u=y+(x-_x);u>=0 and u<=7) pole[u*8+_x]=1;
if (int u=y+(_x-x);u>=0 and u<=7) pole[u*8+_x]=1;
}
}
int main()
{
res();
m_1(3,4);
prn();
res();
m_2(5,6);
prn();
res();
m_3(2,1);
prn();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8bG9jYWxlLmg+CgoKY2hhciBwb2xlWzY0XTsKdm9pZCBwcm4oKXsKICAgcHJpbnRmKCJcbiIpOwogICBmb3IgKGludCB5PTA7eTw4O3krKyl7CiAgICAgIGZvciAoaW50IHg9MDt4PDg7eCsrKQogICAgICAgICBwcmludGYoIiVTIixwb2xlW3kqOCt4XT9MIiBYIjpMIiAtIik7CiAgICAgIHByaW50ZigiXG4iKTsKICAgfQogICBwcmludGYoIlxuIik7Cn0Kdm9pZCByZXMoKXsKICAgZm9yIChpbnQgbz0wO288ODtvKyspCiAgICAgICgobG9uZyBsb25nICopcG9sZSlbb109MDsKfQoKYm9vbCBlXzEoaW50IHgsaW50IHkpewogICByZXR1cm4gKHg+PTAgYW5kIHg8PTcgYW5kIHk+PTAgYW5kIHk8PTcpOwp9Cgp2b2lkIG1fMShpbnQgeCxpbnQgeSl7CiAgIGZvciAoaW50IGk9LTEwO2k8MTA7aSsrKXsKICAgICAgaWYgKGVfMSh4K2kseStpKSlwb2xlWyh5K2kpKjgrKHgraSldPTE7CiAgICAgIGlmIChlXzEoeC1pLHkraSkpcG9sZVsoeStpKSo4Kyh4LWkpXT0xOwogICB9Cn0KCnZvaWQgbV8yKGludCB4LGludCB5KXsKICAgZm9yIChpbnQgX3g9MDtfeDw4O194KyspCiAgICAgIGZvciAoaW50IF95PTA7X3k8ODtfeSsrKQogICAgICAgICBwb2xlW195KjgrX3hdPWFicyhfeC14KT09YWJzKF95LXkpOwp9Cgp2b2lkIG1fMyhpbnQgeCxpbnQgeSl7CiAgIGZvciAoaW50IF94PTA7X3g8ODtfeCsrKXsKICAgICAgaWYgKGludCB1PXkrKHgtX3gpO3U+PTAgYW5kIHU8PTcpIHBvbGVbdSo4K194XT0xOwogICAgICBpZiAoaW50IHU9eSsoX3gteCk7dT49MCBhbmQgdTw9NykgcG9sZVt1KjgrX3hdPTE7CiAgIH0KfQoKaW50IG1haW4oKQp7CiAgIHJlcygpOwogICBtXzEoMyw0KTsKICAgcHJuKCk7CgogICByZXMoKTsKICAgbV8yKDUsNik7CiAgIHBybigpOwoKICAgcmVzKCk7CiAgIG1fMygyLDEpOwogICBwcm4oKTsKCgogICByZXR1cm4gMDsKfQo=