Parentheses and brackets

Suppose that you have xx pairs of parentheses and yy pairs of brackets. In how many ways can you correctly put the parentheses and brackets?

For example, there are 15 ways with x=2x = 2 and y=1y = 1:

()()[] ()[()] (()[]) ([()]) [()]()
()([]) (())[] (([])) []()() [()()]
()[]() ([])() ([]()) [](()) [(())]

The number of combinations grows very fast with xx and yy. Therefore, make the calculations modulo a given natural number mm.

Input

Input consists of several cases. Every case has xx, yy and mm. Suppose 0x500 \le x \le 50, 0y500 \le y \le 50, and 2m1082 \le m \le 10^8.

Output

For every case, print the number of correct ways to place xx pairs of parentheses and yy pairs of brackets, modulo mm.

Problem information

Author: Unknown
Translator: Salvador Roura

Generation: 2026-01-25T10:28:42.528Z

© Jutge.org, 2006–2026.
https://jutge.org