#include <vector>
#include <iostream>
#include <bitset>

using namespace std;

#define forn(i, n) for (int i = 0; i < (int)(n); i++)

// (x^0 * a[0] + x^1 * a[1] + x^2 * a[2] + ...)
// x^i * a[i] * x^j * b[j]
// F_2 -- остатки по модулю 2 | Field = {0, 1}

int n, m;
// vector<int> a(n), b(m), c(n+m);
bitset<1000> a, b, c;

int main() {
	// для F_2

	forn(i, n)
		if (a[i])
			c ^= b << i;

	// n*m / 64
	forn(i, n)
		if (a[i])
			forn(j, m)
				c[i + j] ^= b[j];

	// для F_2
	forn(i, n)
		forn(j, m)
			c[i + j] ^= a[i] && b[j];

	// для int-ов
	forn(i, n)
		forn(j, m)
			c[i + j] += a[i] * b[j];
}


// 3-sum : a[0],a[1],a[2],...a[n-1]  | x + y + z = S
// n^2
// S <= 10^5, a[i] > 0
// MultiplyPolynom(S)

// (x^a[0] + x^a[1] + x^a[2] + ...)^3
// x^a[i]*x^a[j]*x^a[k] = +1*x^{a[i]+a[j]+a[k]}
// count(S) : коэффициент при x^S
// SlogS (Фурье)
// S^2 / 64

	forn(i, n)
		if (a[i])
			c |= b << i;

//		a*b