自从从一份收入丰厚的体育职业退役后,Alex 将大部分时间都致力于思考数学中的基础概念。最近,他一直专注于根据三角形的内角对其进行分类,并发明了首字母缩写词 AROD 来记录以下四种基本类型:
- A = acute(锐角):三个角都小于 90 度
- R = right(直角):有一个角是 90 度
- O = obtuse(钝角):有一个角大于 90 度但小于 180 度
- D = degenerate(退化):有一个角是 180 度,或者等价地,三个顶点共线
Image by Yakovliev (iStock); Used under license
Alex 想知道,从一个规则的 $x$-$y$ 点网格中选择三个不同的顶点,在 AROD 的四个类别中各能组成多少个三角形。更具体地说,对于正整数 $m_x$ 和 $m_y$,他希望考虑从集合
$$V(m_x, m_y) = \{(x, y) : x \text{ 和 } y \text{ 是整数}, 0 \le x \le m_x, 0 \le y \le m_y\}$$
中选择三个不同顶点的所有可能方案,然后将每个对应的三角形归入上述四个类别之一。
输入格式
输入只有一行,包含两个正整数 $m_x$ 和 $m_y$,满足 $m_x + m_y \le 600$。
输出格式
输出四行,依次包含从 $V(m_x, m_y)$ 中选择的三个不同顶点组成锐角、直角、钝角或退化三角形的方案数(每行一个数字)。
样例
输入样例 1
1 2
输出样例 1
0 14 4 2
输入样例 2
2 3
输出样例 2
22 94 84 20