n,Q=map(int,input().split()) s=input() x=[[[-1]*3 for _ in range(10)]] for v,i in enumerate(s): now=x[-1][:] now[int(i)]=now[int(i)][1:]+[v] x.append(now) q=[] for i in range(1000): if i%8: continue q.append([i//100,(i%100)//10,i%10]) inf=10**18 def calc(a,b,c,r): ans=0 ans+=r-c if b>c: b-=1 if a>c: a-=1 ans+=r-b-1 if a>b: a-=1 ans+=r-a-2 return ans for _ in range(Q): l,r=map(int,input().split()) ans=inf p=x[r] for a,b,c in q: cnt=[0]*10 C=p[c][-cnt[c]-1] cnt[c]+=1 B=p[b][-cnt[b]-1] cnt[b]+=1 A=p[a][-cnt[a]-1] cnt[a]+=1 if min(A,B,C)