using System;
using System.Text;
using CompLib.Util;

public class Program
{
    private int N, M, Q;
    private char[][] S;

    public void Solve()
    {
        var sc = new Scanner();
        N = sc.NextInt();
        M = sc.NextInt();
        Q = sc.NextInt();
        S = new char[N][];
        for (int i = 0; i < N; i++)
        {
            S[i] = sc.NextCharArray();
        }

        /*
         * 範囲内の青マスの数 - 青マス同士の連結箇所
         */

        int[] sum = new int[(N + 1) * (M + 1)];
        {
            var line = new int[M + 1];
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    line[j + 1] = line[j] + S[i][j] - '0';
                    sum[Conv(i + 1, j + 1)] = sum[Conv(i, j + 1)] + line[j + 1];
                }
            }
        }

        int[] yoko = new int[(N + 1) * M];
        {
            var line = new int[M];
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < M - 1; j++)
                {
                    line[j + 1] = line[j] + (S[i][j] == '1' && S[i][j + 1] == '1' ? 1 : 0);
                    yoko[ConvYoko(i + 1, j + 1)] = yoko[ConvYoko(i, j + 1)] + line[j + 1];
                }
            }
        }

        int[] tate = new int[N * (M + 1)];
        {
            var line = new int[M + 1];
            for (int i = 0; i < N - 1; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    line[j + 1] = line[j] + (S[i][j] == '1' && S[i + 1][j] == '1' ? 1 : 0);
                    tate[ConvTate(i + 1, j + 1)] = tate[ConvTate(i, j + 1)] + line[j + 1];
                }
            }
        }

        var sb = new StringBuilder();
        for (int i = 0; i < Q; i++)
        {
            int x1 = sc.NextInt() - 1;
            int y1 = sc.NextInt() - 1;
            int x2 = sc.NextInt() - 1;
            int y2 = sc.NextInt() - 1;
            // 範囲内の青マス
            int cnt = sum[Conv(x2 + 1, y2 + 1)] - sum[Conv(x1, y2 + 1)] - sum[Conv(x2 + 1, y1)] + sum[Conv(x1, y1)];
            // 縦方向連結
            int t = tate[ConvTate(x2, y2 + 1)] - tate[ConvTate(x2, y1)] - tate[ConvTate(x1, y2 + 1)] +
                    tate[ConvTate(x1, y1)];
            // 横
            int y = yoko[ConvYoko(x2 + 1, y2)] - yoko[ConvYoko(x2 + 1, y1)] - yoko[ConvYoko(x1, y2)] +
                    yoko[ConvYoko(x1, y1)];
            sb.AppendLine((cnt - t - y).ToString());
        }

        Console.Write(sb.ToString());
    }

    private int ConvTate(int x, int y) => x * (M + 1) + y;
    private int ConvYoko(int x, int y) => x * M + y;
    private int Conv(int x, int y) => x * (M + 1) + y;

    public static void Main(string[] args) => new Program().Solve();
}

namespace CompLib.Util
{
    using System;
    using System.Linq;

    class Scanner
    {
        private string[] _line;
        private int _index;
        private const char Separator = ' ';

        public Scanner()
        {
            _line = new string[0];
            _index = 0;
        }

        public string Next()
        {
            while (_index >= _line.Length)
            {
                _line = Console.ReadLine().Split(Separator);
                _index = 0;
            }

            return _line[_index++];
        }

        public int NextInt() => int.Parse(Next());
        public long NextLong() => long.Parse(Next());
        public double NextDouble() => double.Parse(Next());
        public decimal NextDecimal() => decimal.Parse(Next());
        public char NextChar() => Next()[0];
        public char[] NextCharArray() => Next().ToCharArray();

        public string[] Array()
        {
            _line = Console.ReadLine().Split(Separator);
            _index = _line.Length;
            return _line;
        }

        public int[] IntArray() => Array().Select(int.Parse).ToArray();
        public long[] LongArray() => Array().Select(long.Parse).ToArray();
        public double[] DoubleArray() => Array().Select(double.Parse).ToArray();
        public decimal[] DecimalArray() => Array().Select(decimal.Parse).ToArray();
    }
}

Measured memory_bytes: 82616