#if __has_include() #include #endif #include using namespace std; using namespace atcoder; #ifdef LOCAL #include #define debug(...) debug_print::multi_print(#__VA_ARGS__, __VA_ARGS__) #else #define debug(...) (static_cast(0)) #endif #define rep(i, a, n) for (int i = a; i < n; i++) #define all(x) (x).begin(), (x).end() typedef long long ll; typedef unsigned long long ull; using P = pair; using Point = complex; #if __has_include() using mint = modint998244353; using mint10 = modint1000000007; #endif const ll mod = 998244353; const ll mod10 = 1000000007; const ll INF = 1LL << 60; const double EPS = 1e-10; const int dy[4] = {0, 1, 0, -1}; const int dx[4] = {1, 0, -1, 0}; ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; } ll extgcd(ll a, ll b, ll &x, ll &y) { if (b == 0) { x = 1; y = 0; return a; } ll p = a / b; ll g = extgcd(b, a - b * p, y, x); y -= p * x; return g; } ll pow(ll x, ll n) { ll ret = 1; while (n > 0) { if (n & 1) ret *= x; x *= x; n >>= 1; } return ret; } template inline bool chmin(T &a, T b) { if (a > b) { a = b; return true; } return false; } template inline bool chmax(T &a, T b) { if (a < b) { a = b; return true; } return false; } struct Edge { ll to, cost, rev; Edge() {} Edge(ll to) : to(to) {} Edge(ll to, ll cost) : to(to), cost(cost) {} Edge(ll to, ll cost, ll rev) : to(to), cost(cost), rev(rev) {} }; using Graph = vector>; int main() { ios::sync_with_stdio(false); std::cin.tie(nullptr); int A, B, X; cin >> A >> B >> X; cout << (X + A - 1) / A * B << endl; }