/*
TASK: rtri
LANG:C++
*/
#include <iostream.h>
int main()
{
  int m, n;
  int kl[2][21]={7, 17, 14, 23, 21, 28, 1, 2, 3, 4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
		 4, 12,  8, 15, 12, 16, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30};
  cin >> m >> n;
  unsigned int br=m*n*4;
  int x; if(m>n){x=m; m=n; n=x;}
  for(int i=1; i<=m; i++)
    for(int j=2; j<=n; j++)
    {
      if((m-i+1)>=0 && (n-j+1)>=0) br+=(m-i+1)*(n-j+1)*4;
      if((m-j+1)>=0 && (n-i+1)>=0 && i!=j) br+=(m-j+1)*(n-i+1)*4;
    }
/*
  int l=1;
  int t;
  for(int p=1; p<=m; p*=l)
  {
    t=l;
    if(t==1)t=2;
    for(int k=2; k<=n; k*=t)
    {
      br+=(m-p+1)*(n-k+1)*2;
    }
    l++;
  }
  for(i=2; i<=m; i*=2)
    for(int j=1; j<=n; j*=2)
      br+=(m/i)*(n/j)*2; */
   int aa, bb;
   for(int q=6; q<21; q++)
   {
      aa=kl[0][q];
      bb=kl[1][q];
      if((m-aa+1)>0 && (n-bb+1)>0) br+=(m-aa+1)*(n-bb+1)*2;
      if((m-bb+1)>0 && (n-aa+1)>0) br+=(m-bb+1)*(n-aa+1)*2;
   }
   for(int as=0; as<6; as++)
   {
      aa=kl[0][as];
      bb=kl[1][as];
      if((m-aa+1)>0 && (n-bb+1)>0) br+=(m-aa+1)*(n-bb+1)*4;
      if((m-bb+1)>0 && (n-aa+1)>0) br+=(m-bb+1)*(n-aa+1)*4;
   }
  cout << br;
  return 0;
}