#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("avx,avx2,fma")
using namespace std;
template <typename T>
using vc = vector<T>;
template <typename T>
using uset = unordered_set<T>;
template <typename A, typename B>
using umap = unordered_map<A, B>;
template <typename T>
using pq = priority_queue<T>;
template <typename T>
using minpq = priority_queue<T, vector<T>, greater<T>>;
template <typename T>
inline void sort(vc<T>& v) {
  sort(v.begin(), v.end());
}
template <typename T, typename Comp>
inline void sort(vc<T>& v, Comp c) {
  sort(v.begin(), v.end(), c);
}
using ll = long long;
using ull = unsigned long long;
using pii = pair<int, int>;
using vi = vc<int>;
using vii = vc<pii>;
constexpr char el = '\n';
constexpr char sp = ' ';
ll w, h;
inline ll solve(int width, int height) {
  return (w - width + 1) * (h - height + 1);
}
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout << fixed;
  cin >> w >> h;
  ll ans = 0;
  for (int i = 1; i <= w / 2; ++i)
    for (int j = 1; j <= h / 2; ++j) ans += solve(2 * i, 2 * j);
  cout << ans;
}
