采矿时间到!
题号:NC269418
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

你已经获得了木头,通过工作台制作了木镐,获得了圆石和石镐,现在你已经可以采掘铁矿石了。
这一天你挖了一条长度为 \mathit n,宽度为 \text 1 的矿道,你最多只能在这条矿道向左/右正方向拓宽 \text 2 格,并且你只能垂直于矿道挖掘。
##*#############**##
#########*##########
....................
#####*######**######
#*##################
 如上图所示,'.' 表示矿道,'#' 表示的是圆石,'*' 表示的是矿石。
本题固定第三行为矿道,第一/二行 为你的左侧,第四/五行 为你的右侧。
因为你只能站在矿道上,至多向左/右正方向拓宽 \text 2 格,所以本题只给出 5*n 的俯视图。
每拓宽一格,需要花费 \text 1 点体力。现在您有 \mathit h 点体力,问你最多能得到多少矿石?

以下是合法的两种挖法
###    .##  ###    ..#  
###    .##  ###    ..#
... -> ...  ... -> ...
###    ###  ###    ###
###    ###  ###    ###
以下是不合法的两种挖法
###    ..#  ###    ...
###    .##  ###    #.#
... -> ...  ... -> ...
###    ###  ###    ###
###    ###  ###    ###

输入描述:

第一行 两个正整数 \mathit n\mathit h\mathit n 为 矿道的长度,\mathit h 为体力大小。
接下来五行 每行一个长度为 \mathit n 的只含有'#','*' 和 '.' 的字符串,'#' 表示圆石,'*' 表示矿石,'.' 表示矿道。五行中的第三行一定全为 '.' 。 
1\leq n\leq1000
0\leq h\leq4000

输出描述:

一个整数,表示你最多能得到的矿石数量。
示例1

输入

复制
20 7
##*#######**########
#########*##########
....................
#####*######**######
####################

输出

复制
5

说明

##*#######.*########
#########..#########
....................
#####.######..######
####################

如上,刚好采掘 \text6 格,花费 \text6 点体力,得到 \text5 个矿石。

备注: