#include <iostream>
const int width = 8;
const int height = 8;
const bool maze[height][width] = {
{0, 0, 0, 0, 0, 1, 1, 1},
{0, 0, 1, 0, 0, 0, 0, 1},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{1, 1, 0, 0, 0, 1, 0, 0},
{1, 1, 0, 0, 0, 0, 0, 0},
};
int main() {
int row[width + 1] = {};
row[width - 1] = 1;
for (int y = height - 1; y >= 0; y--) {
for (int x = width - 1; x >= 0; x--) {
row[x] = maze[y][x] ? 0 : row[x] + row[x + 1];
}
}
std::cout << row[0] << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY29uc3QgaW50IHdpZHRoID0gODsKY29uc3QgaW50IGhlaWdodCA9IDg7Cgpjb25zdCBib29sIG1hemVbaGVpZ2h0XVt3aWR0aF0gPSB7CiAgICB7MCwgMCwgMCwgMCwgMCwgMSwgMSwgMX0sCiAgICB7MCwgMCwgMSwgMCwgMCwgMCwgMCwgMX0sCiAgICB7MCwgMCwgMCwgMCwgMCwgMCwgMCwgMH0sCiAgICB7MCwgMSwgMCwgMCwgMCwgMCwgMCwgMH0sCiAgICB7MCwgMCwgMCwgMCwgMSwgMCwgMCwgMH0sCiAgICB7MCwgMCwgMCwgMCwgMCwgMCwgMCwgMH0sCiAgICB7MSwgMSwgMCwgMCwgMCwgMSwgMCwgMH0sCiAgICB7MSwgMSwgMCwgMCwgMCwgMCwgMCwgMH0sCn07CgppbnQgbWFpbigpIHsKICAgIGludCByb3dbd2lkdGggKyAxXSA9IHt9OwogICAgcm93W3dpZHRoIC0gMV0gPSAxOwoKICAgIGZvciAoaW50IHkgPSBoZWlnaHQgLSAxOyB5ID49IDA7IHktLSkgewogICAgICAgIGZvciAoaW50IHggPSB3aWR0aCAtIDE7IHggPj0gMDsgeC0tKSB7CiAgICAgICAgICAgIHJvd1t4XSA9IG1hemVbeV1beF0gPyAwIDogcm93W3hdICsgcm93W3ggKyAxXTsKICAgICAgICB9CiAgICB9CgogICAgc3RkOjpjb3V0IDw8IHJvd1swXSA8PCBzdGQ6OmVuZGw7Cn0=