import           Control.Monad
import           Control.Monad.ST
import qualified Data.Array                  as A
import qualified Data.Array.Unboxed          as AU
import qualified Data.ByteString.Char8       as BS
import           Data.Char
import           Data.List
import           Data.Maybe
import           Data.Ord
import           Data.Time
import qualified Data.Vector                 as V
import qualified Data.Vector.Mutable         as VM
import qualified Data.Vector.Unboxed         as VU
import qualified Data.Vector.Unboxed.Mutable as VUM

readIntegers :: IO [Integer]
readIntegers = map (fst . fromJust . BS.readInteger) . BS.words <$> BS.getLine

readIntegerLists :: Int -> IO [[Integer]]
readIntegerLists n =
  replicateM n (map (fst . fromJust . BS.readInteger) . BS.words <$> BS.getLine)

readInts :: IO [Int]
readInts = map (fst . fromJust . BS.readInt) . BS.words <$> BS.getLine

readIntLists :: Int -> IO [[Int]]
readIntLists n =
  replicateM n (map (fst . fromJust . BS.readInt) . BS.words <$> BS.getLine)

readStrings :: IO [String]
readStrings = map BS.unpack . BS.words <$> BS.getLine

readStringLists :: Int -> IO [[String]]
readStringLists n = replicateM n (map BS.unpack . BS.words <$> BS.getLine)

toPair :: [a] -> (a, a)
toPair [x, y] = (x, y)

main :: IO ()
main = do
  [a, b, t] <- readInts
  print $ solve a b t
  return ()

solve a b t = b * (t `div` a)

-- solve n w vw = f 0 w
--   where
--     items = VU.fromList vw
--     f i cap
--       | i == n = 0
--       | snd (items VU.! i) > cap = f (i + 1) cap
--       | otherwise =
--         max
--           (memo A.! (i + 1, cap))
--           (memo A.! (i + 1, cap - snd (items VU.! i)) + fst (items VU.! i))
--     memo =
--       A.array
--         ((0, 0), (n, w))
--         [((n', w'), f n' w') | n' <- [0 .. n], w' <- [0 .. w]]
