#include <bits/stdc++.h>
using namespace std;

int const maxN = 12;

int64_t f [2] [1 << maxN];
int rows, cols;

int main ()
{
	while (cin >> rows >> cols)
	{
		int b = 0;
		memset (f[b], 0, sizeof (f[b]));
		f[b][0] = 1;
		for (int row = 0; row < rows; row++)
			for (int col = 0; col < cols; col++)
			{
				b ^= 1;
				memset (f[b], 0, sizeof (f[b]));
				for (int mask = 0; mask < (1 << cols); mask++)
				{
					f[b][mask ^ (1 << col)] += f[!b][mask];
					if (col + 1 < cols && !(mask & (3 << col)))
						f[b][mask ^ (2 << col)] += f[!b][mask];
				}
			}
		cout << f[b][0] << endl;
	}
	return 0;
}
