011 - 航空写真

時間制限 2 秒 / メモリ制限 256 MB / 得点 12 / x 0 /


TLE
2sec
MLE
256MB
得点
12

ヒデヨさんは、縮尺と東西南北の向きが同じ2枚の航空写真を入手しました。2枚とも様々な種類の建物が写っていますが、雲で隠れて地面が見えない場所もあ ります。2枚目の写真の範囲は、1枚目の写真の範囲に完全に含まれているようなのですが、これらの写真は違う時刻に撮影されていて、雲で隠れている場所が 異なるため、1枚目の写真のどこに2枚目の写真の範囲が写っているかすぐにはわかりません。雲の下には何があるかわからないため、当てはまる位置が複数あ るかもしれません。

2枚の写真の情報がピクセル単位で与えられたとき、2枚目の写真が1枚目の写真の上に当てはまる可能性のある位置の個数を出力するプログラムを作成せよ。

Input

入力は以下の形式で与えられる。

AW AH BW BH
arow1
arow2
:
arowAH
brow1
brow2
:
browBH

1行目に1枚目の写真の横方向と縦方向のピクセル数AW (1 ≤ AW ≤ 800)とAH (1 ≤ AH ≤ 800)、2枚目の写真の横方向と縦方向のピクセル数BW (1 ≤ BW ≤ 100)とBH (1 ≤ BH ≤ 100)が与えられる(AWBW かつAHBH)。続くAH 行に、1枚目の写真に写っている、上からi 番目にある行のピクセル情報arowi が与えられる。続くBH 行に、2枚目の写真に写っている、上からi 番目にある行のピクセル情報browi が与えられる。

arowibrowi は、それぞれ長さがAWBW であり、英大文字、英小文字、数字、または「?」からなる文字列である。1文字が1つのピクセルを表し、英大文字と英小文字と数字が建物の種類を、「?」が雲をそれぞれ表す。

Output

位置の個数を1行に出力する。

Sample Input 1

5 5 3 3
AF??z
W?p88
???Hk
pU?m?
F???c
F??
p?8
?H?

Sample Output 1

4

Sample Input 2

6 5 4 2
aaaaaa
aaaaaa
aaaaaa
aaaaaa
aaaaaa
aaaa
aaaa

Sample Output 2

12