C. Рассадка
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Предположим, вы ходите каждый день на занятия. Каждый раз вы приходите в последний момент, и некоторые места в классе уже заняты. Например, сегодня вы с друзьями пришли в класс и обнаружили, что некоторые места уже заняты.

В класс $$$n$$$ рядов по $$$m$$$ мест в каждом ряду. Таким образом, класс можно представить как матрицу $$$n \times m$$$. Символ «.» означает свободное место, а символ «*» означает занятое место. Вам необходимо найти $$$k$$$ соседних свободных мест в одном ряду или в одном столбце. Посчитайте количество способов выбрать места. Два способа считаются различными, если различны множества мест, которые вы выберете.

Входные данные

Первая строка содержит три различных целых числа $$$n,m,k$$$ ($$$1 \leq n, m, k \leq 2\,000$$$), где $$$n,m$$$ описывают размеры класса, а $$$k$$$ — число соседних мест, которые вы должны найти.

Каждая из следующих $$$n$$$ строк содержит $$$m$$$ символов «.» или «*». Они образуют матрицу, описывающую класс, «.» обозначает свободное место, а «*» — занятое.

Выходные данные

Выведите одно число — число способов выбрать $$$k$$$ свободных мест в одном ряду или столбце.

Примеры
Входные данные
2 3 2
**.
...
Выходные данные
3
Входные данные
1 2 2
..
Выходные данные
1
Входные данные
3 3 4
.*.
*.*
.*.
Выходные данные
0
Примечание

В первом примере есть три способа выбрать места. Они перечислены ниже.

  • $$$(1,3)$$$, $$$(2,3)$$$
  • $$$(2,2)$$$, $$$(2,3)$$$
  • $$$(2,1)$$$, $$$(2,2)$$$