Aerial Photo

Time Limit : 2 sec, Memory Limit : 262144 KB

航空写真

ヒデヨさんは、縮尺と東西南北の向きが同じ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

Source: PC Koshien 2017 , All-Japan High School Programming Contest, Aizu-Wakamatsu, Japan, 2017-11-3
http://web-ext.u-aizu.ac.jp/pc-concours/