main = do
  [h,w] <- map read . words <$> getLine :: IO [Int]
  print $ solve h w

solve :: Int -> Int -> Int
solve h w 
  | h `mod` 3 == 0 = 0
  | w `mod` 3 == 0 = 0
  | otherwise =
    -- Hで全探査
    let 
      hm = minimum [min (max3 a b1 c1 - min3 a b1 b1)  (max3 a b2 c2 - min3 a b2 c2)| 
         h'<-[1..(h-1)], 
         let a = h' * w,
         let b1 = (h-h')`div`2*w,
         let c1 = ((h-h')`div`2 + (h-h')`mod`2)*w,
         let b2 = (h-h')*(w`div`2),
         let c2 = (h-h')*(w`div`2 + w`mod`2)  ]  
      
      -- Wで全探査
      wm = minimum [min (max3 a b1 c1 - min3 a b1 b1)  (max3 a b2 c2 - min3 a b2 c2)| 
         w'<-[1..(w-1)], 
         let a = h * w',
         let b1 = (w-w')`div`2*h,
         let c1 = ((w-w')`div`2 + (w-w')`mod`2)*h,
         let b2 = (w-w')*(h`div`2),
         let c2 = (w-w')*(h`div`2 + h`mod`2)  ]  
    in 
      min hm wm
    where
      max3 a b c = max (max a b) c
      min3 a b c = min (min a b) c
