#include <iostream>
#include <algorithm>
#include <string>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <iomanip>
#include <set>
#include <ctime>
#include <tuple>
#include <bitset>
#include <assert.h>
#include <deque>
#include <functional>
#include <numeric>
using namespace std;
typedef long long ll;

#define fi first
#define se second
#define debugA cerr << "AAAAA" << endl
#define debug_ cerr << "-------------" << endl
#define debug(x) cerr << #x << ": " << x << endl
#define debug_vec(v)                   \
    cout << #v << endl;                \
    for (int i = 0; i < v.size(); i++) \
    {                                  \
        cout << v[i] << " ";           \
    }                                  \
    cout << endl;
#define debug_vec2(v)                         \
    cout << #v << endl;                       \
    for (int i = 0; i < v.size(); i++)        \
    {                                         \
        for (int j = 0; j < v[i].size(); j++) \
        {                                     \
            cout << v[i][j] << " ";           \
        }                                     \
        cout << endl;                         \
    }

template <typename T>
bool chmax(T &a, const T &b)
{
    if (a < b)
    {
        a = b;
        return true;
    }
    return false;
}

template <typename T>
bool chmin(T &a, const T &b)
{
    if (a > b)
    {
        a = b;
        return true;
    }
    return false;
}

template <typename T>
void quit(T a)
{
    cout << a << endl;
    exit(0);
}

using Graph = vector<vector<int> >;
using P = pair<int, int>;
using P1 = pair<int, pair<int, int> >; // クラスカル法とかで、{cost, {from,
                                      // to}}的に使う。
const ll LINF = 10010020030040056ll;
const int INF = 1001001001;
const double pi = acos(-1);


int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout << fixed << setprecision(20);

    ll MOD = 998244353;

    ll a,b,c;
    cin >> a >> b >> c;
    ll tmp1 = (a *(a+1)) / 2;
    ll tmp2 = (b * (b+1)) / 2;
    ll tmp3 = (c * (c+1)) / 2;
    tmp1 %=MOD;
    tmp2 %=MOD;
    tmp3 %=MOD;
    ll ans = ((tmp1 * tmp2) % MOD) * tmp3 % MOD;
    ans = (ans + MOD) % MOD;

    cout << ans << endl;


    return 0;
}

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

int main() {
    ll A, B, C;
    cin >> A >> B >> C;
    ll mod = 998244353;
    ll inv2 = (mod+1)/2;
    ll X = A*(A+1)%mod*inv2%mod;
    ll Y = B*(B+1)%mod*inv2%mod;
    ll Z = C*(C+1)%mod*inv2%mod;
    ll ans = X*Y%mod*Z%mod;
    cout << ans << endl;
    return 0;
}