#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int funkcija(string s) {
    int br;
    for (int i = 0; i < s.size(); i++) {
        if (s[i] == '6') {
            for (int j = i; j < s.size(); j++) {
                if (s[j] == '7') {
                    br++;
                }
            }
        }
    }
    return br;
}

int sest_sedam(string s) {
    string s1 = s, s2 = s;
    if (binary_search(s.begin(), s.end(), '?')) {
        for (int i = 0; i < s.size(); i++) {
            if (s[i] == '?') {
                s1[i] = '6';
                s2[i] = '7';
                return max(sest_sedam(s1), sest_sedam(s2));
            }
        }
    }
    return funkcija(s);
}

int funkcija(int x, int y, string s) {
    string zmn;
    for (int i = x - 1; i <= y - 1; i++) {
        zmn += s[i];
    }
    return sest_sedam(zmn);
}

int main()
{
    int n, q; string s; vector<int> v1;
    cin >> n >> q >> s;
    int x, y;
    for (int i = 0; i < q; i++) {
        cin >> x >> y;
        v1.push_back(funkcija(x, y, s));
    }
    for (int i = 0; i < v1.size(); i++) {
        cout << v1[i] << '\n';
    }
}