Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ACM-ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

D. Animals and Puzzle

time limit per test

5 secondsmemory limit per test

512 megabytesinput

standard inputoutput

standard outputOwl Sonya gave a huge lake puzzle of size *n* × *m* to hedgehog Filya as a birthday present. Friends immediately started to assemble the puzzle, but some parts of it turned out to be empty — there was no picture on them. Parts with picture on it are denoted by 1, while empty parts are denoted by 0. Rows of the puzzle are numbered from top to bottom with integers from 1 to *n*, while columns are numbered from left to right with integers from 1 to *m*.

Animals decided to complete the picture and play with it, as it might be even more fun! Owl and hedgehog ask each other some queries. Each query is provided by four integers *x*_{1}, *y*_{1}, *x*_{2}, *y*_{2} which define the rectangle, where (*x*_{1}, *y*_{1}) stands for the coordinates of the up left cell of the rectangle, while (*x*_{2}, *y*_{2}) stands for the coordinates of the bottom right cell. The answer to the query is the size of the maximum square consisting of picture parts only (only parts denoted by 1) and located fully inside the query rectangle.

Help Sonya and Filya answer *t* queries.

Input

The first line of the input contains two integers *n* and *m* (1 ≤ *n*, *m* ≤ 1000) — sizes of the puzzle.

Each of the following *n* lines contains *m* integers *a*_{ij}. Each of them is equal to 1 if the corresponding cell contains a picture and 0 if it's empty.

Next line contains an integer *t* (1 ≤ *t* ≤ 1 000 000) — the number of queries.

Then follow *t* lines with queries' descriptions. Each of them contains four integers *x*_{1}, *y*_{1}, *x*_{2}, *y*_{2} (1 ≤ *x*_{1} ≤ *x*_{2} ≤ *n*, 1 ≤ *y*_{1} ≤ *y*_{2} ≤ *m*) — coordinates of the up left and bottom right cells of the query rectangle.

Output

Print *t* lines. The *i*-th of them should contain the maximum size of the square consisting of 1-s and lying fully inside the query rectangle.

Example

Input

3 4

1 1 0 1

0 1 1 0

0 1 1 0

5

1 1 2 3

2 1 3 2

3 2 3 4

1 1 3 4

1 2 3 4

Output

1

1

1

2

2

Codeforces (c) Copyright 2010-2019 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Mar/23/2019 14:55:54 (d3).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|