#include<stdio.h>
#include<string.h>
 
 
int Norte(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
    int i, j, n, k;
    j = *pc; k = 0;
    for (i = *pl; i < i + n; i++) {
        if (cacapalavra[i][j] != palavra[k]) return -1;
        else k++;
    }
    *pl = i;
    return 0;
}
 
int Sul(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
    int i, j, n, k;
    j = *pc; k = 0;
    for (i = *pl; i < i + n; i++) {
        if (cacapalavra[i][j] != palavra[k]) return -1;
        else k++;
    }
    *pl = i;
    return 0;
}
 
int Leste(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
    int i, j, n, k;
    i = *pl; k = 0;
    for (j = *pc; j < j + n; j++) {
        if (cacapalavra[i][j] != palavra[k]) return -1;
        else k++;
    }
    *pc = j;
    return 0;
}
 
int Oeste(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
    int i, j, n, k;
    i = *pl; k = 0;
    for (j = *pc; j < j + n; j--) {
        if (cacapalavra[i][j] != palavra[k]) return -1;
        else k++;
    }
    *pc = j;
    return 0;
}
 
int Nordeste(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
    int i, j, n, k;
    k = 0;
    for (i = *pl, j = *pc; i < i + n; j++, i--) {
        if (cacapalavra[i][j] != palavra[k]) return -1;
        else k++;
     }
     *pl = i; *pc = j;
     return 0;
}
 
int Noroeste(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
     int i, j, n, k;
     k = 0;
     for (i = *pl, j = *pc; i < i + n; j--, i--) {
        if (cacapalavra[i][j] != palavra[k]) return -1;
        else k++;
     }
     *pl = i; *pc = j;
     return 0;
}
 
int Sudeste(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
    int i, j, n, k;
    k = 0;
    for (i = *pl, j = *pc; i < i + n; j--, i++) {
        if (cacapalavra[i][j] != palavra[k]) return -1;
        else k++;
    }
    *pl = i; *pc = j;
    return 0;
}
 
int Sudoeste(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
    int i, j, n, k;
    k = 0;
    for (i = *pl, j = *pc; i < i + n; j++, i++) {
        if (cacapalavra[i][j] != palavra[k]) return -1;
        else k++;
    }
    *pl = i; *pc = j;
    return 0;
}
 
int main () {
    char cacapalavra [100][100];
    char palavra [100];
    int k = 0, n, *pc = 0, *pl = 0, aux;
    for (int i 
= 0; i 
< n
; i
++) for (int j 
= 0; j 
< n
; j
++) scanf("%c", &cacapalavra
[i
][j
]);     for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (palavra[k] == cacapalavra[i][j]) {
                *pc = j; *pl = i;
                aux = Norte(cacapalavra, palavra, pc, pl);
                aux = Sul(cacapalavra, palavra, pc, pl);
                aux = Leste(cacapalavra, palavra, pc, pl);
                aux = Oeste(cacapalavra, palavra, pc, pl);
                aux = Nordeste(cacapalavra, palavra, pc, pl);
                aux = Noroeste(cacapalavra, palavra, pc, pl);
                aux = Sudeste(cacapalavra, palavra, pc, pl);
                aux = Sudoeste(cacapalavra, palavra, pc, pl);
                printf("%d", aux
); //só para eliminar o warning que não foi usada.             }
        }
    }
}
 
//https://pt.stackoverflow.com/q/155345/101
				I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RyaW5nLmg+CgoKaW50IE5vcnRlKGNoYXIgY2FjYXBhbGF2cmFbXVsxMDBdLCBjaGFyIHBhbGF2cmFbXSwgaW50ICpwYywgaW50ICpwbCkgewogICAgaW50IGksIGosIG4sIGs7CiAgICBqID0gKnBjOyBrID0gMDsKICAgIG4gPSBzdHJsZW4ocGFsYXZyYSk7CiAgICBmb3IgKGkgPSAqcGw7IGkgPCBpICsgbjsgaSsrKSB7CiAgICAgICAgaWYgKGNhY2FwYWxhdnJhW2ldW2pdICE9IHBhbGF2cmFba10pIHJldHVybiAtMTsKICAgICAgICBlbHNlIGsrKzsKICAgIH0KICAgICpwbCA9IGk7CiAgICByZXR1cm4gMDsKfQoKaW50IFN1bChjaGFyIGNhY2FwYWxhdnJhW11bMTAwXSwgY2hhciBwYWxhdnJhW10sIGludCAqcGMsIGludCAqcGwpIHsKICAgIGludCBpLCBqLCBuLCBrOwogICAgaiA9ICpwYzsgayA9IDA7CiAgICBuID0gc3RybGVuKHBhbGF2cmEpOwogICAgZm9yIChpID0gKnBsOyBpIDwgaSArIG47IGkrKykgewogICAgICAgIGlmIChjYWNhcGFsYXZyYVtpXVtqXSAhPSBwYWxhdnJhW2tdKSByZXR1cm4gLTE7CiAgICAgICAgZWxzZSBrKys7CiAgICB9CiAgICAqcGwgPSBpOwogICAgcmV0dXJuIDA7Cn0KCmludCBMZXN0ZShjaGFyIGNhY2FwYWxhdnJhW11bMTAwXSwgY2hhciBwYWxhdnJhW10sIGludCAqcGMsIGludCAqcGwpIHsKICAgIGludCBpLCBqLCBuLCBrOwogICAgaSA9ICpwbDsgayA9IDA7CiAgICBuID0gc3RybGVuKHBhbGF2cmEpOwogICAgZm9yIChqID0gKnBjOyBqIDwgaiArIG47IGorKykgewogICAgICAgIGlmIChjYWNhcGFsYXZyYVtpXVtqXSAhPSBwYWxhdnJhW2tdKSByZXR1cm4gLTE7CiAgICAgICAgZWxzZSBrKys7CiAgICB9CiAgICAqcGMgPSBqOwogICAgcmV0dXJuIDA7Cn0KCmludCBPZXN0ZShjaGFyIGNhY2FwYWxhdnJhW11bMTAwXSwgY2hhciBwYWxhdnJhW10sIGludCAqcGMsIGludCAqcGwpIHsKICAgIGludCBpLCBqLCBuLCBrOwogICAgaSA9ICpwbDsgayA9IDA7CiAgICBuID0gc3RybGVuKHBhbGF2cmEpOwogICAgZm9yIChqID0gKnBjOyBqIDwgaiArIG47IGotLSkgewogICAgICAgIGlmIChjYWNhcGFsYXZyYVtpXVtqXSAhPSBwYWxhdnJhW2tdKSByZXR1cm4gLTE7CiAgICAgICAgZWxzZSBrKys7CiAgICB9CiAgICAqcGMgPSBqOwogICAgcmV0dXJuIDA7Cn0KCmludCBOb3JkZXN0ZShjaGFyIGNhY2FwYWxhdnJhW11bMTAwXSwgY2hhciBwYWxhdnJhW10sIGludCAqcGMsIGludCAqcGwpIHsKICAgIGludCBpLCBqLCBuLCBrOwogICAgayA9IDA7CiAgICBuID0gc3RybGVuKHBhbGF2cmEpOwogICAgZm9yIChpID0gKnBsLCBqID0gKnBjOyBpIDwgaSArIG47IGorKywgaS0tKSB7CiAgICAgICAgaWYgKGNhY2FwYWxhdnJhW2ldW2pdICE9IHBhbGF2cmFba10pIHJldHVybiAtMTsKICAgICAgICBlbHNlIGsrKzsKICAgICB9CiAgICAgKnBsID0gaTsgKnBjID0gajsKICAgICByZXR1cm4gMDsKfQoKaW50IE5vcm9lc3RlKGNoYXIgY2FjYXBhbGF2cmFbXVsxMDBdLCBjaGFyIHBhbGF2cmFbXSwgaW50ICpwYywgaW50ICpwbCkgewogICAgIGludCBpLCBqLCBuLCBrOwogICAgIGsgPSAwOwogICAgIG4gPSBzdHJsZW4ocGFsYXZyYSk7CiAgICAgZm9yIChpID0gKnBsLCBqID0gKnBjOyBpIDwgaSArIG47IGotLSwgaS0tKSB7CiAgICAgICAgaWYgKGNhY2FwYWxhdnJhW2ldW2pdICE9IHBhbGF2cmFba10pIHJldHVybiAtMTsKICAgICAgICBlbHNlIGsrKzsKICAgICB9CiAgICAgKnBsID0gaTsgKnBjID0gajsKICAgICByZXR1cm4gMDsKfQoKaW50IFN1ZGVzdGUoY2hhciBjYWNhcGFsYXZyYVtdWzEwMF0sIGNoYXIgcGFsYXZyYVtdLCBpbnQgKnBjLCBpbnQgKnBsKSB7CiAgICBpbnQgaSwgaiwgbiwgazsKICAgIGsgPSAwOwogICAgbiA9IHN0cmxlbihwYWxhdnJhKTsKICAgIGZvciAoaSA9ICpwbCwgaiA9ICpwYzsgaSA8IGkgKyBuOyBqLS0sIGkrKykgewogICAgICAgIGlmIChjYWNhcGFsYXZyYVtpXVtqXSAhPSBwYWxhdnJhW2tdKSByZXR1cm4gLTE7CiAgICAgICAgZWxzZSBrKys7CiAgICB9CiAgICAqcGwgPSBpOyAqcGMgPSBqOwogICAgcmV0dXJuIDA7Cn0KCmludCBTdWRvZXN0ZShjaGFyIGNhY2FwYWxhdnJhW11bMTAwXSwgY2hhciBwYWxhdnJhW10sIGludCAqcGMsIGludCAqcGwpIHsKICAgIGludCBpLCBqLCBuLCBrOwogICAgayA9IDA7CiAgICBuID0gc3RybGVuKHBhbGF2cmEpOwogICAgZm9yIChpID0gKnBsLCBqID0gKnBjOyBpIDwgaSArIG47IGorKywgaSsrKSB7CiAgICAgICAgaWYgKGNhY2FwYWxhdnJhW2ldW2pdICE9IHBhbGF2cmFba10pIHJldHVybiAtMTsKICAgICAgICBlbHNlIGsrKzsKICAgIH0KICAgICpwbCA9IGk7ICpwYyA9IGo7CiAgICByZXR1cm4gMDsKfQoKaW50IG1haW4gKCkgewogICAgY2hhciBjYWNhcGFsYXZyYSBbMTAwXVsxMDBdOwogICAgY2hhciBwYWxhdnJhIFsxMDBdOwogICAgaW50IGsgPSAwLCBuLCAqcGMgPSAwLCAqcGwgPSAwLCBhdXg7CiAgICBzY2FuZiAoIiVkIiwgJm4pOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIGZvciAoaW50IGogPSAwOyBqIDwgbjsgaisrKSBzY2FuZigiJWMiLCAmY2FjYXBhbGF2cmFbaV1bal0pOwogICAgc2NhbmYgKCIlcyIsIHBhbGF2cmEpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG47IGorKykgewogICAgICAgICAgICBpZiAocGFsYXZyYVtrXSA9PSBjYWNhcGFsYXZyYVtpXVtqXSkgewogICAgICAgICAgICAgICAgKnBjID0gajsgKnBsID0gaTsKICAgICAgICAgICAgICAgIGF1eCA9IE5vcnRlKGNhY2FwYWxhdnJhLCBwYWxhdnJhLCBwYywgcGwpOwogICAgICAgICAgICAgICAgYXV4ID0gU3VsKGNhY2FwYWxhdnJhLCBwYWxhdnJhLCBwYywgcGwpOwogICAgICAgICAgICAgICAgYXV4ID0gTGVzdGUoY2FjYXBhbGF2cmEsIHBhbGF2cmEsIHBjLCBwbCk7CiAgICAgICAgICAgICAgICBhdXggPSBPZXN0ZShjYWNhcGFsYXZyYSwgcGFsYXZyYSwgcGMsIHBsKTsKICAgICAgICAgICAgICAgIGF1eCA9IE5vcmRlc3RlKGNhY2FwYWxhdnJhLCBwYWxhdnJhLCBwYywgcGwpOwogICAgICAgICAgICAgICAgYXV4ID0gTm9yb2VzdGUoY2FjYXBhbGF2cmEsIHBhbGF2cmEsIHBjLCBwbCk7CiAgICAgICAgICAgICAgICBhdXggPSBTdWRlc3RlKGNhY2FwYWxhdnJhLCBwYWxhdnJhLCBwYywgcGwpOwogICAgICAgICAgICAgICAgYXV4ID0gU3Vkb2VzdGUoY2FjYXBhbGF2cmEsIHBhbGF2cmEsIHBjLCBwbCk7CiAgICAgICAgICAgICAgICBwcmludGYoIiVkIiwgYXV4KTsgLy9zw7MgcGFyYSBlbGltaW5hciBvIHdhcm5pbmcgcXVlIG7Do28gZm9pIHVzYWRhLgogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgovL2h0dHBzOi8vcHQuc3RhY2tvdmVyZmxvdy5jb20vcS8xNTUzNDUvMTAx