from bisect import* n,q=map(int,input().split()) s=input() e=[] for i in range(1000): if i%8==0 and'0'not in str(i): e+=[*str(i)], idx={} for i in'123456789': idx[i]=[] for i in range(n): idx[s[i]]+=i, INF=1<<60 for _ in range(q): l,r=map(int,input().split()) l-=1 d=r-l m=min(d,3) ans=INF bs=[-1]*10 for i in range(1,10): bs[i]=bisect(idx[str(i)],r-1)-1 for st in e: if m!=len(st): continue p={} a=0 pos=r-1 mv=[] for j in range(m): ns=st[~j] k=bs[int(ns)] if ns not in p: p[ns]=0 if 0<=k-p[ns]