Parentheses and brackets

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

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

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

The number of combinations grows very fast with x and y. Therefore, make
the calculations modulo a given natural number m.

Input

Input consists of several cases. Every case has x, y and m. Suppose
0 ≤ x ≤ 50, 0 ≤ y ≤ 50, and 2 ≤ m ≤ 10⁸.

Output

For every case, print the number of correct ways to place x pairs of
parentheses and y pairs of brackets, modulo m.

Problem information

Author: Unknown
Translator: Salvador Roura

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

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