Snuke has N integers. Among them, the smallest is A, and the largest is B. We are interested in the sum of those N integers. How many different possible sums there are?

Constraints

* 1 ≤ N,A,B ≤ 10^9
* A and B are integers.

Input

Input is given from Standard Input in the following format:


N A B


Output

Print the number of the different possible sums.

Examples

Input

4 4 6


Output

5


Input

5 4 3


Output

0


Input

1 7 10


Output

0


Input

1 3 3


Output

1
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Main {
	public static void main(String args[]) throws IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		Solver solver = new Solver();
		solver.init();
		solver.readHead(in.readLine());
		// for (; solver.hasNext();) {
		// solver.readBody(in.readLine());
		// }
	}
}

class Solver {
	int N;
	int cnt;

	public void init() {
		N = 0;
		cnt = 0;
	}

	public void readHead(String str) {
		String[] strArr = str.split(" ");
		// N = Integer.parseInt(strArr[0]);
		// System.out.println(N);
		int n = Integer.parseInt(strArr[0]);
		int a = Integer.parseInt(strArr[1]);
		int b = Integer.parseInt(strArr[2]);
		System.out.println(cal(n, a, b));
	}

	private long cal(int n, int a, int b) {
		if (a > b)
			return 0;
		if (n < 1)
			return 0;
		if (n == 1 && a != b)
			return 0;
		if (n <= 2)
			return 1;
		long ans = (long) (n - 2) * (long) (b - a) + 1;
		return ans;
	}

	public boolean hasNext() {
		return cnt < N;
	}

	public void readBody(String str) {
		// System.out.println(str);
		cnt++;
	}
}
