using namespace std;
#include <bits/stdc++.h>
typedef long long ll;
typedef long double ld;
typedef string str;

template <typename T> using v = vector<T>;
template <typename T> using vv = vector<vector<T>>;
template <typename T> using vvv = vector<vector<vector<T>>>;
template <typename T> inline void errv(T &v) {
    for(auto x : v)
        cerr << x << " ";
    cerr << endl;
}
inline void errv(vector<bool> &v) {
    for(auto x : v)
        cerr << (x ? 1 : 0) << " ";
    cerr << endl;
}
template <typename T> inline void dbgn(T x) {
    cerr << x << endl;
}
template <typename T> inline void dbgn(vector<T> &v) {
    errv(v);
}
template <typename T> inline void dbgn(vector<vector<T>> &m) {
    for(auto &v : m)
        errv(v);
}
template <typename T> inline bool chmax(T &a, T b) {
    return ((a < b) ? (a = b, true) : (false));
}
template <typename T> inline bool chmin(T &a, T b) {
    return ((a > b) ? (a = b, true) : (false));
}
template <typename T> inline T sum(vector<T> &a) {
    T ret{};
    for(auto &i : a)
        ret += i;
    return ret;
}
template <typename T> inline T min(vector<T> &a) {
    T ret = a[0];
    for(auto &i : a)
        chmin(ret, i);
    return ret;
}
template <typename T> inline T max(vector<T> &a) {
    T ret = a[0];
    for(auto &i : a)
        chmax(ret, i);
    return ret;
}
template <long long mod> struct modint {
    modint(ll v = 0) : value(normalize(v)) {
    }
    ll val() const {
        return value;
    }
    void normalize() {
        value = normalize(value);
    }
    ll normalize(ll v) {
        if(v <= mod && v >= -mod) {
            if(v < 0)
                v += mod;
            return v;
        }
        if(v > 0 && v < 2 * mod) {
            v -= mod;
            return v;
        }
        if(v < 0 && v > -2 * mod) {
            v += 2 * mod;
            return v;
        }
        v %= mod;
        if(v < 0)
            v += mod;
        return v;
    }
    modint<mod> &operator=(ll v) {
        value = normalize(v);
        return *this;
    }
    bool operator==(const modint &o) const {
        return value == o.val();
    }
    bool operator!=(const modint &o) const {
        return value != o.val();
    }
    const modint &operator+() const {
        return *this;
    }
    const modint &operator-() const {
        return value ? mod - value : 0;
    }
    const modint operator+(const modint &o) const {
        return value + o.val();
    }
    modint &operator+=(const modint &o) {
        value += o.val();
        if(value >= mod)
            value -= mod;
        return *this;
    }
    const modint operator-(const modint &o) const {
        return value - o.val();
    }
    modint &operator-=(const modint &o) {
        value -= o.val();
        if(value < 0)
            value += mod;
        return *this;
    }
    const modint operator*(const modint &o) const {
        return (value * o.val()) % mod;
    }
    modint &operator*=(const modint &o) {
        value *= o.val();
        value %= mod;
        return *this;
    }
    const modint operator/(const modint &o) const {
        return operator*(o.inv());
    }
    modint &operator/=(const modint &o) {
        return operator*=(o.inv());
    }
    const modint pow(ll n) const {
        modint ans = 1, x(value);
        while(n > 0) {
            if(n & 1)
                ans *= x;
            x *= x;
            n >>= 1;
        }
        return ans;
    }
    const modint inv() const {
        ll a = value, b = mod, u = 1, v = 0;
        while(b) {
            ll t = a / b;
            a -= t * b;
            swap(a, b);
            u -= t * v;
            swap(u, v);
        }
        return u;
    }
    friend ostream &operator<<(ostream &os, const modint &x) {
        return os << x.val();
    }
    template <typename T> friend modint operator+(T t, const modint &o) {
        return o + t;
    }
    template <typename T> friend modint operator-(T t, const modint &o) {
        return -o + t;
    }
    template <typename T> friend modint operator*(T t, const modint &o) {
        return o * t;
    }
    template <typename T> friend modint operator/(T t, const modint &o) {
        return o.inv() * t;
    }

  private:
    ll value;
};

#define d(x) dbgn(x);
#define rep(i, c, n) for(int i = c; i < n; ++i)
#define repa(i, a) for(auto i : a)
#define so(v) sort(v.begin(), v.end())
#define rso(v) sort(v.rbegin(), v.rend())

using P = pair<ll, int>;
using Dijkstra = priority_queue<P, vector<P>, greater<P>>;
// using mint = modint<1000000007>;
using mint = modint<998244353>;

const ll INF = 1LL << 60;
const ll MOD = 998244353;
// const ll MOD = 1000000007;
int dx[8] = {0, 1, 0, -1, -1, -1, 1, 1};
int dy[8] = {1, 0, -1, 0, -1, 1, -1, 1};

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int a, b, c;
    cin >> a >> b >> c;
    int ans = min(a * c, b);
    cout << ans << endl;
}