Write a program or function that given positive n and m calculates the number of valid distinct domino tilings you can fit in a n by m rectangle. This is sequence A099390 in the Online Encyclopedia of Integer Sequences. You may take input in as function argument(s), CLA or on stdin, in any reasonable format. You must return or print a single integer as output.
Each tiling must not leave any gaps, and every distinct tiling is counted, including rotations, reflections, etc. For example, the tilings for 2x3 are:
|-- ||| --| |-- ||| --|
Example inputs/outputs:
1, 9 -> 02, 2 -> 22, 3 -> 34, 4 -> 364, 6 -> 2816, 6 -> 67287, 10 -> 53175517
Your program should theoretically work for any n and m, but if your program requires too much memory or your data type overflows it's excused. Your program must work correctly for any n, m<= 8 however.
Shortest code in bytes wins.