#include <stdio.h>
#include <stdlib.h>
#define W 8
#define H 6
char map[H][W] = {
    {1,1,1,1,1,1,1,1},
    {1,0,0,1,1,1,1,1},
    {1,1,0,0,0,1,1,1},
    {1,1,1,1,0,0,1,1},
    {1,1,1,1,1,0,2,1},
    {1,1,1,1,1,1,1,1},
};
    
void print_map(){
    for(int i=0;i<H;i++){
        if(i!=0) printf("\n");
        for(int j=0;j<W;j++){
            if(map[i][j]==0){
                printf(" ");
            }else if(map[i][j]==1){
                printf("#");
            }else if(map[i][j]==2){
                printf("G");
            }
        }
    }
    printf("\n");
}
void maze0(int x,int y,int depth){
    for(int i=0;i<depth*2;i++){
        printf(" ");
    }
    switch(map[y][x]){
        case 0: printf("(%d,%d)\n",x,y); break;
        case 1: printf("(%d,%d)X\n",x,y); break;
        case 2: printf("(%d,%d) OK\n",x,y); break;
    }
}
void maze1(int x,int y,int depth){
    for(int i=0;i<depth*2;i++){
        printf(" ");
    }
    switch(map[y][x]){
        case 0: 
            printf("(%d,%d)\n",x,y);
            maze1(x+1,y,depth+1);
            maze1(x,y+1,depth+1);
            break;
        case 1: printf("(%d,%d)X\n",x,y); break;
        case 2: printf("(%d,%d) OK\n",x,y); exit(0); break;
    }
}
int main(){
    print_map();
    /*for(int i=0;i<H;i++){
        for(int j=0;j<W;j++){
            maze0(j,i,2);
        }
    }*/
    maze1(1,1,0);
    return 0;
}