#include<bits/stdc++.h>
using namespace std;

const int mod=998244353;
int a,b,c;
int main( ) {
	cin>>a>>b>>c;
	a%=mod, b%=mod, c%=mod;
	a=1ll*a*(a+1)/2%mod;
	b=1ll*b*(b+1)/2%mod;
	c=1ll*c*(c+1)/2%mod;
	cout<<1ll*a*b%mod*c%mod;
	return 0;
}
#include<bits/stdc++.h>
using namespace std;
typedef long int int32;
typedef unsigned long int uint32;
typedef long long int int64;
typedef unsigned long long int  uint64;
typedef long double ldd;
typedef double ld;
#define fast ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL)
#define mp(x,y) make_pair(x,y)
#define pb(x) push_back(x)
#define INF (int)1e9
#define INF64 (int64)1e18
#define EPS 1e-9
#define PI 3.1415926535897932384626433832795
#define MOD 1000000007
#define F first
#define S  second
const double pie = acos(-1.0);
template <typename T>
T Max(T x, T y)
{
  return (x > y) ? x : y;
}
template <typename T>
T Min(T x, T y)
{
  return (x > y) ? y : x;
}
int gcd(int n1, int n2)
{
  if (n2 != 0) return gcd(n2, n1 % n2);
  else return n1;
}
long long binpow(long long a, long long b, long long m) {
  a %= m;
  long long res = 1;
  while (b > 0) {
    if (b & 1)
      res = res * a % m;

    a = a * a % m;
    b >>= 1;
  }
  return res;
}
#define TRACE

#ifdef TRACE
#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1>
void __f(const char* name, Arg1&& arg1) {
  cerr << name << " : " << arg1 << std::endl;
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args) {
  const char* comma = strchr(names + 1, ','); cerr.write(names, comma - names) << " : " << arg1 << " | "; __f(comma + 1, args...);
}
#else
#define trace(...)
#endif
clock_t time_p = clock();
void rtime() {time_p = clock() - time_p; cerr << "Time Taken : " << (float)1000 * (time_p) / CLOCKS_PER_SEC << "\n";}
int n;
string s, str;
int arr[10000001];
void solve()
{
  long long int a, b, c;
  cin >> a >> b >> c;
  long long int ans1, ans2, ans3;
  ans1 = a * (a + 1) / 2;
  ans2 = b * (b + 1) / 2;
  ans3 = c * (c + 1) / 2;
  long long int m = 998244353;
  cout << ((((ans1 % m) * (ans2 % m)) % m) * (ans3 % m)) % m;

}
int main()
{ fast;
  int t;
  t = 1;
  while (t--)
  { solve();
  }
}