ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

1921. В храме Хаоса и Порядка

Ограничение времени: 2.0 секунды
Ограничение памяти: 64 МБ
Мир в опасности. Далеко-далеко на крайнем Западе стоит храм Хаоса и Порядка. Каждая из этих двух сил, если дать ей свободу, могла бы уничтожить Землю, поэтому спокойствие мира зависит от тонкого баланса между ними. Этот баланс поддерживают Монахи Равновесия.
Пол в храме расчерчен на одинаковые квадраты так, что получается поле n × m. В каждый квадрат Монахи Равновесия вписывают одну из k рун так, чтобы соблюсти нужный баланс. Заклинанием уровня t называются t одинаковых рун, стоящих подряд в одной строке, одном столбце или на одной диагонали таблицы.
Один раз в тысячелетие воплощения Порядка и Хаоса встречаются на Земле и договариваются о том, каким должен быть баланс l в этом тысячелетии. И через один день и две секунды после этой встречи монахи должны заполнить пол храма Хаоса и Порядка так, чтобы на нём встречались заклинания уровня l − 1 (иначе Хаос уничтожит мир), но не встречалось заклинаний уровня l (иначе мир будет уничтожен Порядком).
Помогите монахам найти нужное расположение рун и спасти Вселенную. На то, чтобы вписать руны, им потребуется целый день, поэтому ваша программа должна работать не дольше двух секунд.

Исходные данные

В единственной строке входных данных содержатся целые числа n, m, k, l (1 ≤ n, m ≤ 100; 1 ≤ k ≤ 26; 2 ≤ l ≤ 100).

Результат

Если вписать руны нужным образом невозможно, то в единственной строке выведите «NO». Иначе в первой строке выведите «YES», а в следующих n строках по m символов в каждой — заполненный рунами пол. Каждая руна должна обозначаться заглавной латинской буквой, разные руны обозначаются разными буквами, одинаковые — одинаковыми. Для обозначения рун разрешается использовать только первые k букв алфавита.

Примеры

исходные данныерезультат
3 4 4 2
YES
ABCB
CDAD
ABCB
2 2 1 2
NO
Автор задачи: Григорий Назаров
Источник задачи: Уральская региональная командная олимпиада по программированию 2012