#include #include using i64 = long long; template std::ostream& operator<<(std::ostream& os, std::vector& a) { for (auto& x : a) os << x << " "; return os; } struct DSU { int n; std::vector f, siz; DSU(){} DSU(int N) : n(N), f(n), siz(n, 1) { std::iota(f.begin(), f.end(), 0); } int find (int x) { while (x != f[x]) x = f[x] = f[f[x]]; return x; } bool merge(int x, int y) { x = find(x), y = find(y); if (x == y) return false; if (siz[x] > siz[y]) std::swap(x, y); f[x] = y; siz[y] += siz[x]; return true; } int size (int x) { return siz[find(x)]; } }; int dx[] = {0, 1, 0, -1}, dy[] = {1, 1, -1, -1}; int main() { std::cin.tie(nullptr)->sync_with_stdio(false); i64 a, b; std::cin >> a >> b; std::cout << (a + b - 1) / a << '\n'; return 0; }