Problem:
Pattern Search

Find places where a R × C pattern is found within a H × W region. Print top-left coordinates (i, j) of sub-regions where the pattern found. The top-left and bottom-right coordinates of the region is (0, 0) and (H-1, W-1) respectively.

Input

In the first line, two integers H and W are given. In the following H lines, i-th lines of the region are given.

In the next line, two integers R and C are given. In the following R lines, i-th lines of the pattern are given.

output

For each sub-region found, print a coordinate i and j separated by a space character in a line. Print the coordinates in ascending order of the row numbers (i), or the column numbers (j) in case of a tie.

Constraints

1 ≤ H, W ≤ 1000

1 ≤ R, C ≤ 1000

The input consists of alphabetical characters and digits

Sample Input 1

4 5
00010
00101
00010
00100
3 2
10
01
10

Sample Output 1

0 3
1 2

Solution in C (judge verdict: Wrong Answer)

#include<stdio.h>
int a[1000][1000], b[1000][1000];
int check(int x, int y, int r, int c){
    int i, j;
    for(i=0; i<r; i++)for(j=1; j<c+1; j++)if(a[i+x][j+y]!=b[i][j])return 0;
    return 1;
}
int main(){
    int i, j, h, w, r, c;
    scanf("%d %d", &h, &w);
    for(i=0; i<h; i++)for(j=0; j<w+1; j++)a[i][j]=getchar();
    scanf("%d %d", &r, &c);
    for(i=0; i<r; i++)for(j=0; j<c+1; j++)b[i][j]=getchar();
    for(i=0; i<h-r+1; i++)for(j=0; j<w-c+1; j++)if(check(i, j, r, c))printf("%d %d\n", i, j);
    return 0;
}