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