A tennis tournament with n participants is running. The participants are playing by an olympic system, so the winners move on and the losers drop out.

The tournament takes place in the following way (below, m is the number of the participants of the current round):

  * let k be the maximal power of the number 2 such that k ≤ m, 
  * k participants compete in the current round and a half of them passes to the next round, the other m - k participants pass to the next round directly, 
  * when only one participant remains, the tournament finishes. 



Each match requires b bottles of water for each participant and one bottle for the judge. Besides p towels are given to each participant for the whole tournament.

Find the number of bottles and towels needed for the tournament.

Note that it's a tennis tournament so in each match two participants compete (one of them will win and the other will lose).

Input

The only line contains three integers n, b, p (1 ≤ n, b, p ≤ 500) — the number of participants and the parameters described in the problem statement.

Output

Print two integers x and y — the number of bottles and towels need for the tournament.

Examples

Input

5 2 3


Output

20 15


Input

8 2 4


Output

35 32

Note

In the first example will be three rounds:

  1. in the first round will be two matches and for each match 5 bottles of water are needed (two for each of the participants and one for the judge), 
  2. in the second round will be only one match, so we need another 5 bottles of water, 
  3. in the third round will also be only one match, so we need another 5 bottles of water. 



So in total we need 20 bottles of water.

In the second example no participant will move on to some round directly.

import java.io.*;

/*
 * This file was created by ayush in attempt to solve the problem Tennis Tournament on spoj
 */
public class TennisTournament {
    public int lowerBound(int x){
        x = x | (x >> 1);
        x = x | (x >> 2);
        x = x | (x >> 4);
        x = x | (x >> 8);
        x = x | (x >> 16);
        return x - (x >> 1);
    }
    public void solve(int a,int b,int c, PrintWriter out) {
        int k = a;
        int bottels = 0;
        int towels = a*c;
        while(k!=1){

            int lb = k!=2 ? lowerBound(k-1):2;
            int matches = lb/2;
            bottels+=(b*lb)+matches;
            k=matches+(k-lb);
        }
        out.println(bottels+" "+towels);
    }

    public static void main(String[] args)throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter out = new PrintWriter(System.out);

        TennisTournament solver = new TennisTournament();

        int[] abc = IOUtils.readLinearIntArray(in);
        solver.solve(abc[0],abc[1],abc[2], out);
        out.flush();

        out.close();
    }

    static class IOUtils{
        public static int[] readLinearIntArray(BufferedReader in)throws IOException {
            //in.nextLine();
            String[] arr = in.readLine().split(" ");
            int[] array = new int[arr.length];
            for (int i = 0; i < arr.length; i++)
                array[i] = Integer.parseInt(arr[i]);
            return array;
        }

    }
}