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.util.*;
import java.lang.*;
import java.io.*;
public class Main{
    public static void main (String[] args) throws java.lang.Exception{
        //BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
        InputReader in=new InputReader(System.in);
        PrintWriter out=new PrintWriter(System.out);
        int k=in.readInt();
        int n=in.readInt();
        int w=in.readInt();
        long req=(w*(w+1))/2;
        req*=k;
        System.out.println(mod(req-n));
    }
    public static long mod(long a){
         if(a<=0)
              return 0;
         else return a;
    }
}
class InputReader
{
    private InputStream stream;
    private byte[] buf=new byte[1024];
    private int curChar;
    private int numChars;
    private SpaceCharFilter filter;
    public InputReader(InputStream stream)
    {this.stream=stream;}
    public int read()
    {
        if(numChars==-1)
        throw new InputMismatchException();
        if(curChar>=numChars)
        {
            curChar=0;
            try{
                numChars=stream.read(buf);
            }catch(IOException e){
                throw new InputMismatchException();
            }
            if(numChars<=0)
            return -1;
        }
        return buf[curChar++];
    }
    public int readInt()
    {
        int c=read();
        while(isSpaceChar(c))
            c=read();
        int sgn=1;
        if(c=='-')
        {
            sgn=-1;
            c=read();
        }
        int res=0;
        do{
            if(c<'0'||c>'9')
            throw new InputMismatchException();
            res*=10;
            res+=c-'0';
            c=read();
        }while(!isSpaceChar(c));
        return res*sgn;
    }
    public long readLong()
    {
        int c=read();
        while(isSpaceChar(c))
            c=read();
        int sgn=1;
        if(c=='-')
        {
            sgn=-1;
            c=read();
        }
        long res=0;
        do{
            if(c<'0'||c>'9')
            throw new InputMismatchException();
            res*=10;
            res+=c-'0';
            c=read();
        }while(!isSpaceChar(c));
        return res*sgn;
    }
    public int[] readArray(int len)
    {
        int c=read();
        while(isSpaceChar(c))
            c=read();
        int sgn=1;
        if(c=='-')
        {
            sgn=-1;
            c=read();
        }
        int[] res=new int[len];int j=0;
        do{
            if(c<'0'||c>'9')
            throw new InputMismatchException();
            //res*=10;
            res[j++]=c-'0';
            c=read();
        }while(!isSpaceChar(c));
        return res;
    }
    public String readString()
    {
        int c=read();
        while(isSpaceChar(c))
            c=read();
        StringBuilder res=new StringBuilder();
        do{
            res.appendCodePoint(c);
            c=read();
        }while(!isSpaceChar(c));
        return res.toString();
    }
    public boolean isSpaceChar(int c)
    {
        if(filter!=null)
            return filter.isSpaceChar(c);
        return c==' '||c=='\n'||c=='\r'||c=='\t'||c==-1;
    }
    public String next()
    {
        return readString();
    }
    public interface SpaceCharFilter
    {
        public boolean isSpaceChar(int ch);
    }
}