#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<random>
#include<bitset>
#include<string>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#include<unordered_set>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int mod=998244353;
int main()
{
    IO;
    int T=1;
    //cin>>T;
    while(T--)
    {
        ll a,b,c;
        cin>>a>>b>>c;
        a=(1+a)*a/2%mod;
        b=(1+b)*b/2%mod;
        c=(1+c)*c/2%mod;
        ll res=a*b%mod*c%mod;
        cout<<res<<'\n';
    }
    return 0;
}
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define double long double
int nod (int n) {
    int result = ((n <= 1) ? 1 : log10(n) + 1);
    return  result;
}
int npr(int n  , int r){
    int result;
    if (n- r == 0) result  = 2;
    else result = ((n * (n+ 1)) / 2) / ((n - r) * (n - r + 1) / 2);
    return result;
}
int32_t main() {

    int a[3];
    for(int i =0 ;  i < 3 ; i++) cin >> a[i];
    sort(a , a + 3 ,greater<int>());
    cout << a[0] + a[1] <<"\n";

}