N,Q=map(int,input().split()) S=input() G=[[] for i in range(10)] v=[[0]*N for i in range(10)] for i in range(N): x=int(S[i]) G[x].append(i) for y in range(10): if y==x: v[y][i]=v[y][i-1]+1 else: v[y][i]=v[y][i-1] for _ in range(Q): l,r=map(int,input().split()) l-=1 r-=1 h=[[-10**10]*3 for i in range(10)] for x in range(10): pos=v[x][r] for e in range(pos-1,pos-4,-1): if e<0: break t=G[x][e] if t>=l: h[x][(pos-1-e)]=t result=10**10 for y in range(13,125): z=str(8*y) ans=0 a,b,c=int(z[2]),int(z[1]),int(z[0]) ans+=r-h[a][0] pos1=h[a][0] k=0 if b==a: k+=1 ans+=r-1-h[b][k] pos2=h[b][k] k=0 if c==a: k+=1 if c==b: k+=1 ans+=r-2-h[c][k] pos3=h[c][k] if pos1