import java.util.*; import java.math.*; public class Main { static BigInteger one=new BigInteger("1"); static BigInteger two=new BigInteger("2"); static BigInteger dfs(BigInteger n,BigInteger a,BigInteger b) { if (n.compareTo(one)==0) return a; BigInteger tmp=(n.multiply(n).multiply(n).multiply(a)).add((n.subtract(one)).multiply(n).multiply(n).multiply(b)); n=n.divide(two); BigInteger tmp2=dfs(n,a,b).multiply(BigInteger.valueOf(7)); tmp2=tmp2.add(BigInteger.valueOf(18).multiply(n).multiply(n).multiply(b)); if (tmp2.compareTo(tmp)<=0) return tmp2; return tmp; } public static void main(String[] args) { Scanner in=new Scanner(System.in); int T=in.nextInt(); BigInteger MOD=new BigInteger("1000000007"); while (T-->0) { BigInteger n=in.nextBigInteger(); BigInteger b=in.nextBigInteger(); BigInteger a=in.nextBigInteger(); System.out.println(dfs(n,a,b).mod(MOD)); } } }