Tatami

Time Limit : 8 sec, Memory Limit : 65536 KB

Problem I: Tatami

A tatami mat, a Japanese traditional floor cover, has a rectangular form with aspect ratio 1:2. When spreading tatami mats on a floor, it is prohibited to make a cross with the border of the tatami mats, because it is believed to bring bad luck.

Your task is to write a program that reports how many possible ways to spread tatami mats of the same size on a floor of given height and width.

Input

The input consists of multiple datasets. Each dataset cosists of a line which contains two integers H and W in this order, separated with a single space. H and W are the height and the width of the floor respectively. The length of the shorter edge of a tatami mat is regarded as a unit length.

You may assume 0 < H, W ≤ 20.

The last dataset is followed by a line containing two zeros. This line is not a part of any dataset and should not be processed.

Output

For each dataset, print the number of possible ways to spread tatami mats in one line.

Sample Input

3 4
4 4
0 0

Output for the Sample Input

4
2

Source: ACM-ICPC Japan Alumni Group Summer Camp 2009 , Day 2, Tokyo, Japan, 2009-09-19
http://acm-icpc.aitea.net/