#include <bits/stdc++.h>
using namespace std;
const int nax = 1e5 + 7;
const int mod = 1e9 + 7;
const int inf = numeric_limits<int>::max();
int n, m;
void test() {
  cin >> n;
  int a, b;
  cin >> a >> b;
  n -= a;
  if (n <= 0) {
    cout << 0;
    return;
  }
  cout << min(n - 1, b) + 1;
}
signed main() {
  ios_base ::sync_with_stdio(false);
  cin.tie(NULL);
  int T = 1;
  while (T--) {
    test();
    cout << "\n";
  }
  return 0;
}

### Prompt

Construct a cpp code solution to the problem outlined:

Petr stands in line of n people, but he doesn't know exactly which position he occupies. He can say that there are no less than a people standing in front of him and no more than b people standing behind him. Find the number of different positions Petr can occupy.

Input

The only line contains three integers n, a and b (0 ≤ a, b < n ≤ 100).

Output

Print the single number — the number of the sought positions.

Examples

Input

3 1 1


Output

2


Input

5 2 3


Output

3

Note

The possible positions in the first sample are: 2 and 3 (if we number the positions starting with 1).

In the second sample they are 3, 4 and 5.

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
const int nax = 1e5 + 7;
const int mod = 1e9 + 7;
const int inf = numeric_limits<int>::max();
int n, m;
void test() {
  cin >> n;
  int a, b;
  cin >> a >> b;
  n -= a;
  if (n <= 0) {
    cout << 0;
    return;
  }
  cout << min(n - 1, b) + 1;
}
signed main() {
  ios_base ::sync_with_stdio(false);
  cin.tie(NULL);
  int T = 1;
  while (T--) {
    test();
    cout << "\n";
  }
  return 0;
}

```