# -*- coding: utf-8 -*-

import random

keyboard = [u"йцукенгшщзхъ",
            u"фывапролджэ",
            u"ячсмитьбю"]

def find_character(x):
    for row in range(len(keyboard)):
        for column in range(len(keyboard[row])):
            if x == keyboard[row][column]:
                return [row, column]
    return None

def within_keyboard(row, column):
    return 0 <= row < len(keyboard) and 0 <= column < len(keyboard[row])

def get_variants(x):
    directions = [(0, 1), (1, 0), (0, -1), (-1, 0),
                  (1, 1), (-1, 1), (-1, -1), (1, -1)] + [(0, 0)] * 25
    cell = find_character(x)
    if cell == None:
        return []
    else:
        [row, column] = cell
        return [keyboard[row + x][column + y]
                for (x, y) in directions
                if within_keyboard(row + x, column + y)]

def mobilify_character(x):
    variants = get_variants(x)
    if variants == []:
        return x
    else:
        return variants[random.randint(0, len(variants) - 1)]

def mobilka(text):
    return ''.join([mobilify_character(x) for x in text])

print mobilka(u"в плюсах и дишке удобно сделано это")
