You have unlimited number of coins with values 1, 2, …, n. You want to select some set of coins having the total value of S. 

It is allowed to have multiple coins with the same value in the set. What is the minimum number of coins required to get sum S?

Input

The only line of the input contains two integers n and S (1 ≤ n ≤ 100 000, 1 ≤ S ≤ 10^9)

Output

Print exactly one integer — the minimum number of coins required to obtain sum S.

Examples

Input

5 11


Output

3

Input

6 16


Output

3

Note

In the first example, some of the possible ways to get sum 11 with 3 coins are: 

  * (3, 4, 4)
  * (2, 4, 5)
  * (1, 5, 5)
  * (3, 3, 5) 



It is impossible to get sum 11 with less than 3 coins.

In the second example, some of the possible ways to get sum 16 with 3 coins are: 

  * (5, 5, 6)
  * (4, 6, 6) 



It is impossible to get sum 16 with less than 3 coins.
#include <bits/stdc++.h>
using namespace std;
long long revNumber(long long n) {
  long long b = 0;
  while (n != 0) {
    b = b * 10 + n % 10;
    n /= 10;
  }
  return b;
}
long long leapYearCheck(long long year) {
  if (year % 4 != 0)
    return 0;
  else if (year % 100 != 0)
    return 1;
  else if (year % 400 != 0)
    return 0;
  else
    return 1;
}
long long countDivisor(long long n) {
  long long ck = 0;
  for (long long i = 1; i * i <= n; i++) {
    if (n % i == 0) {
      ck++;
      if (i != n / i) ck++;
    }
  }
  return ck;
}
long long primeFactorsCount(long long n) {
  long long gf = 0;
  while (n % 2 == 0) {
    gf++;
    n = n / 2;
  }
  for (long long i = 3; i <= sqrt(n); i = i + 2) {
    while (n % i == 0) {
      gf++;
      n = n / i;
    }
  }
  if (n > 2) {
    gf++;
  }
  return gf;
}
long long factorial(long long n) {
  if (n == 1) return 1;
  return n * factorial(n - 1);
}
long long binarySearch(long long high, long long sV, long long arr[]) {
  long long low = 0;
  while (low <= high) {
    long long mid = (high + low) / 2;
    if (sV == arr[mid])
      return mid + 1;
    else if (sV > arr[mid])
      low = mid + 1;
    else
      high = mid - 1;
  }
  return -1;
}
bool checkPrime(int n) {
  int i;
  if (n <= 1) return false;
  for (i = 2; i * i <= n; i++) {
    if (n % i == 0) return false;
  }
  return true;
}
void simpleSieve(int limit) {
  bool mark[limit];
  memset(mark, true, sizeof(mark));
  for (int p = 2; p * p < limit; ++p) {
    if (mark[p] == true) {
      for (int i = p * 2; i < limit; i += p) mark[i] = false;
    }
  }
  for (int p = 2; p < limit; ++p) {
    if (mark[p] == true) cout << p << " ";
  }
}
int divSum(int n) {
  int result = 0;
  for (int i = 2; i <= sqrt(n); ++i) {
    if (n % i == 0) {
      if (i == (n / i))
        result += i;
      else
        result += (i + n / i);
    }
  }
  return (result + 1);
}
bool isPerfectSquare(int n) {
  for (int sum = 0, i = 1; sum < n; i += 2) {
    sum += i;
    if (sum == n) return true;
  }
  return false;
}
bool isPowerOfTwo(long long x) { return (x && !(x & (x - 1))); }
bool checksqrt(double f) { return (sqrt(f) * sqrt(f) == f); }
int Combination(int n, int r) {
  if (n == r) return 1;
  if (r == 1) return n;
  return Combination(n - 1, r) + Combination(n - 1, r - 1);
}
int Permutation(int n, int r) { return factorial(n) / factorial(n - r); }
int countDerangements(int n) {
  if (n == 1) return 0;
  if (n == 0) return 1;
  if (n == 2) return 1;
  return (n - 1) * (countDerangements(n - 1) + countDerangements(n - 2));
}
unsigned long long Catalan(unsigned long long n) {
  if (n <= 1) return 1;
  unsigned long long res = 0;
  for (int i = 0; i < n; ++i) {
    res += Catalan(i) * Catalan(n - i - 1);
  }
  return res;
}
int middle(int a, int b, int c) {
  if ((a <= b && b <= c) || (c <= b && b <= a))
    return b;
  else if ((b <= a && a <= c) || (c <= a && a <= b))
    return a;
  else
    return c;
}
template <typename KeyType, typename ValueType>
std::pair<KeyType, ValueType> get_max(const std::map<KeyType, ValueType>& x) {
  using pairtype = std::pair<KeyType, ValueType>;
  return *std::max_element(x.begin(), x.end(),
                           [](const pairtype& p1, const pairtype& p2) {
                             return p1.second < p2.second;
                           });
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n, m;
  cin >> n >> m;
  if (m % n != 0)
    cout << m / n + 1;
  else
    cout << m / n << endl;
  return 0;
}
