# This is a sample Python script.

# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
from math import sqrt


def load_input(name):
    with open(name) as file:
        temp = file.read().splitlines()
        rules = [int(temp[0][0]), temp[0][2]]
        temp.pop(0)
    return_array = []
    for i in range(rules[0]):
        temp_array = []
        for j in range(rules[0]):
            temp_array.append(temp[i][j])
        return_array.append(temp_array)
    return rules, return_array


def bugger_processing(size, map):
    first_b_coords = []
    for i in range(size):
        for j in range(size):
            if map[i][j] == 'B':
                if len(first_b_coords) == 0:
                    first_b_coords.append(i)
                    first_b_coords.append(j)
                    if (i + j) % 2 == 0:
                        first_b_coords.append(0)
                    else:
                        first_b_coords.append(1)
                elif (i + j) % 2 != first_b_coords[2]:
                    return [False,[]]
    return [True, []]


def king_processing(size, map):
    kings_x = []
    kings_y = []
    moves = []
    suma = 0
    for i in range(size):
        for j in range(size):
            if map[i][j] == 'K':
                kings_x.append(i)
                kings_y.append(j)
    for x in range(len(kings_x) - 1):
        suma += ((kings_x[x + 1] - kings_x[x]) ** 2 + (kings_y[x + 1] - kings_y[x]) ** 2) ** 0.5

    if suma >= (int(len(kings_x)))*2**0.5:
        return [False, False]
    else:
        for x in range(len(kings_x)-1):
            moves.append(f'{kings_x[int(len(kings_x))-1-x]+1} {kings_y[int(len(kings_x))-1-x]+1} {kings_x[int(len(kings_x))-2-x]+1} {kings_y[int(len(kings_x))-2-x]+1}')

        return [True, moves]


def map_processing(rules, map):
    type = rules[1]
    size = rules[0]

    if type == 'N':
        if size < 3:
            return [False,[]]
        elif size == 3 and map[1][1] == 'N':
            return [False,[]]
        else:
            return [True, []]
    if type == 'B':
        return bugger_processing(size, map)
    if type == 'K':
        return king_processing(size, map)


if __name__ == '__main__':

    load = []
    rules = input()
    load.append([int(rules[0]), rules[2]])
    sz = int(load[0][0])
    arr = []
    for x in range(sz):
        temp_array = []
        sttr = input()
        for c in sttr:
            temp_array.append(c)
        arr.append(temp_array)
    load.append(arr)

    if not map_processing(load[0], load[1])[0]:
        print("NO")
    else:
        print("YES")
        for s in map_processing(load[0], load[1])[1]:
            print(s)
