#!/bin/python import sys from collections import Counter def maxlen(z): count=0 odd={} even={} mino=1000000 mine=1000000 leno=0 lene=0 maxo=0 ind=-1 for i in z: if z[i]%2: odd[i]=z[i] leno+=1 if z[i] > maxo: maxo=z[i] ind=i if z[i] < mino: mino=z[i] else: even[i]=z[i] lene+=1 if z[i] < mine: mine=z[i] maxle=lene*mine+maxo if len(odd)-1: l=(len(odd)-1)*(mino-1) l=0 maxle+=l from math import factorial as fact return fact(maxle/2) def answerQuery(s): k=dict(Counter(s)) return maxlen(k) if __name__ == "__main__": s = raw_input().strip() s=list(s) q = int(raw_input().strip()) for a0 in xrange(q): l, r = raw_input().strip().split(' ') l, r = [int(l), int(r)] result = answerQuery(s[l-1:r]) print result