A soldier wants to buy w bananas in the shop. He has to pay k dollars for the first banana, 2k dollars for the second one and so on (in other words, he has to pay i·k dollars for the i-th banana). 

He has n dollars. How many dollars does he have to borrow from his friend soldier to buy w bananas?

Input

The first line contains three positive integers k, n, w (1 ≤ k, w ≤ 1000, 0 ≤ n ≤ 109), the cost of the first banana, initial number of dollars the soldier has and number of bananas he wants. 

Output

Output one integer — the amount of dollars that the soldier must borrow from his friend. If he doesn't have to borrow money, output 0.

Examples

Input

3 17 4


Output

13
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;


public class C546 {
	private StringTokenizer st;
	private BufferedReader bf;
	
	public C546(){
		try {
			bf = new BufferedReader(new InputStreamReader(System.in));
			st = new StringTokenizer(bf.readLine());
			
			long rate = (long)nextInt();
			long hasmoney = (long)nextInt();
			long bananas = (long)nextInt();
			long nessesary = 0;
//			for (int i = 1; i <= bananas ; i++) {
//				nessesary += (long)i * rate;
//			}
			nessesary = (bananas*(bananas + 1L) / 2L) * rate;
			long delta = nessesary - hasmoney;
			if (delta <= 0)
				System.out.println(0);
			else
				System.out.println(delta);
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	private int nextInt() throws IOException {
		return Integer.parseInt(next());
	}
	
	private String next() throws IOException {
		if (st == null || !st.hasMoreTokens())
			st = new StringTokenizer(bf.readLine());
		return st.nextToken();
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		C546 c = new C546();
	}
}
