Karafs is some kind of vegetable in shape of an 1 × h rectangle. Tavaspolis people love Karafs and they use Karafs in almost any kind of food. Tavas, himself, is crazy about Karafs.

<image>

Each Karafs has a positive integer height. Tavas has an infinite 1-based sequence of Karafses. The height of the i-th Karafs is si = A + (i - 1) × B.

For a given m, let's define an m-bite operation as decreasing the height of at most m distinct not eaten Karafses by 1. Karafs is considered as eaten when its height becomes zero.

Now SaDDas asks you n queries. In each query he gives you numbers l, t and m and you should find the largest number r such that l ≤ r and sequence sl, sl + 1, ..., sr can be eaten by performing m-bite no more than t times or print -1 if there is no such number r.

Input

The first line of input contains three integers A, B and n (1 ≤ A, B ≤ 106, 1 ≤ n ≤ 105).

Next n lines contain information about queries. i-th line contains integers l, t, m (1 ≤ l, t, m ≤ 106) for i-th query.

Output

For each query, print its answer in a single line.

Examples

Input

2 1 4
1 5 3
3 3 10
7 10 2
6 4 8


Output

4
-1
8
-1


Input

1 5 2
1 5 10
2 7 4


Output

1
2
rr=raw_input
rrI = lambda: int(rr())
rrM = lambda: map(int,rr().split())
debug=0
if debug:
    fi = open('t.txt','r')
    rr=lambda: fi.readline().replace('\n','')
A,B,N = rrM()
from math import sqrt
#def f(R,A,B): return A*R + B*R*(R-1)/2
for tc in xrange(N):
    L,T,M = rrM()
    #largest R so that with T M-bites
    # you can eat A+(L-1)B , ... ,A+(R-1)B
    #So, most you can eat is sum of MT
    # which is A(R-L+1) + B/2( R(R-1) - (L-2)(L-1)) <= MT
    #Also A+(R-1)B <= T equiv to
    # R <= (T-A+B)/B
    #Also R <=N
    # 7 10 2:  8, 9, 10
    mi = L
    ma = 1 + (T-A)/B
    if ma < mi: print -1
    else:
    
        C = M*T+A*L-A+(L-2)*(L-1)*B/2
        #want biggest R between with f(R,A,B) <= RHS
        #R^2 B/2 + R(A-B/2) - C <= 0
        # so R = (B/2 - A) +/- sqrt( (A-B/2)**2 + 2BC )  )/ B
        maxiR = ((B/2.0 - A) + sqrt( (A-B/2.)**2 + 2*B*C )) / float(B)
        maxiR = int(maxiR)
        print min(maxiR,ma)
        """
        if f(mi,A,B) > RHS: print -1
        else:
            while ma-mi > 1:
                me = (mi+ma)/2
                if f(me,A,B) > RHS:
                    ma = me
                else:
                    mi = me
                #print 'mima',mi,me,ma
            if f(ma,A,B) <= RHS and ma>=L: print ma #,'a'#,f(ma,A,B),RHS
            elif mi>=L and f(mi,A,B)<=RHS: print mi#,'b' #,f(mi,A,B),RHS
            else: print -1"""
    
