Statistics

Problem Statement for "TwoMazeAlgorithms"

Problem Statement

This is essentially an open-data problem.

You will be provided 21 input files, numbered 0.in to 20.in. You then have to find solutions to these inputs and submit a program that just outputs them.

More precisely, your actual program will get the number TID of the input file (0 to 20) and it should return a valid solution for that file.


You can download a ZIP file with all data for this problem: http://algo.sk/topcoder/TwoMazeAlgorithms/all.zip (4.5 MB).


----------------


This problem is about two well-known maze-generating algorithms.

For a given dimension D they both start with a grid of D x D isolated rooms. Each pair of adjacent rooms currently shares a wall.

An example starting state for D = 3 is shown below, with '.'s being the rooms and '#' walls between and around them.

  #######
  #.#.#.#
  #######
  #.#.#.#
  #######
  #.#.#.#
  #######

In the end, each algorithm produces a maze that is a tree: for each pair of rooms there is exactly one simple path between them.

  • Algorithm 1 (DFS) starts in the top left room of the maze and runs a depth-first search that eventually visits all rooms. In each room the DFS takes the four cardinal directions, permutes them into a random order and then processes them in that order. For each direction, if in that direction is a wall and then an unvisited room, we break down that wall, move into that room, run DFS recursively from there and then we move back from that room.
  • Algorithm 2 (MST) assigns a distinct random cost to each wall between two rooms. Then it uses Kruskal's algorithm to find the minimum spanning tree, i.e., the cheapest way to break down some walls so that all rooms become connected. The walls that form the MST are removed to produce the maze.

An example of such a maze for D = 5 is shown below. (This particular maze was generated by the MST algorithm.)

  ###########
  #.....#.#.#
  ###.###.#.#
  #...#...#.#
  #.#.###.#.#
  #.#.......#
  ###.###.###
  #.#...#.#.#
  #.#.#####.#
  #.........#
  ###########

As above, characters with both (0-based) coordinates odd represent the rooms. You may notice that there are exactly D x D such characters and all of them are still '.'s.

Characters with exactly one coordinate odd are walls between the rooms. Some are still present ('#'), some have been removed ('.').


----------------


Each of the provided input files starts with a line containing the number T of tests it contains. Then the tests follow. Each test starts with a line containing its D. This line is followed by 2*D+1 lines containing a valid maze in the format shown above.


Each of the input files was generated as follows: the value T, all values D and a probability P in [0.4, 0.6] were all chosen arbitrarily. Then, for each test we randomly selected an algorithm (DFS with probability P, MST with probability 1-P) and we used that algorithm to generate the maze.


Your task is to classify the mazes. Return a string of length T where for each maze, in the given order, you use the character 'D' if you think it was generated by DFS or the character 'M' if you think it was generated by MST.

Your string will be accepted if your accuracy is at least 99%. (E.g., for T = 1000 you can classify at most 10 of the mazes incorrectly.)


----------------


In the provided ZIP file (the link is in the top section of the problem statement) you'll find the following files:

  • {0-20}.in: the inputs you should solve
  • 0.out: completely correct output for 0.in
  • dfs_maze.py, mst_maze.py: reference implementations of both maze-generating algorithms
  • dfs1000.in, mst1000.in: for each algorithm an input that contains 1000 of its outputs
  • README.txt: a text file with this information

All files have UNIX endlines (LF only).

Definition

Class:
TwoMazeAlgorithms
Method:
classify
Parameters:
int
Returns:
String
Method signature:
String classify(int TID)
(be sure your method is public)

Notes

  • All random choices everywhere are mutually independent.
  • The return value must be syntactically correct: it must have exactly T characters and each of them must be 'D' or 'M'.
  • As a courtesy to other contestants consider including actual code you wrote to solve the problem as a long comment in the source code you submit. This is not required, but people who want to look at other solutions after the round will surely appreciate it.

Constraints

  • TID will be between 0 and 20, inclusive.
  • In input 0 we have T = 100.
  • In all other inputs we have T = 1000.
  • In each test in each input, D is between 4 and 50, inclusive.

Examples

  1. 0

    Returns: "MDDMDMDDDMMMMMDMMDDMDDMMDDMDDMMMMMDDMMDDMMMDDDMMDMDMDDMDDDMDDMDDDDDMDMDDDDMMMMMDDDMDDDDMDDMDDMDDMMMM"

    This is almost the correct answer to the example input: character 0 of the return value should have been 'D'. Note that the example input with TID=0 has T=100 so for this test you may only make at most one mistake to get accepted. (At most 10 mistakes are acceptable in all other tests.)

  2. 1

    Returns: "DDMDDDDDMMMMMMDMMMMDDDMMDDMMMMMDDMDDDDDMMDDMDDMDDDDMMMMDDDMDDDMDMDDDDMDDMDMDMMDDMMDMMDMDDDMDDDDMMMDMMDDDDDDDMDDDDDDDDDDDDMMDDDDMDDMDMDDMDDDDDDDMDDMDDDMDMDDDDMMMDDMMMDDDDDMMDMDMDMDDMMMDDDDMDDDMDDDDDMMDMDDDDMMDDMDMDMDDMDDMMDDMMDDDDDDMDDDDDDMDDDDDDMDDMDDDMMDDMMDDMMMMMMDMDMDDDMMMMDDMMMMDMDDDMDMMMDDMMMMDMMDMDDMDDDMDDDMDDDMDMDMMMMMDMDMDMDMDDDDDMDMDMDDDDDDDMDDMMMMDMMMMDDDDDDMMDMMMDDMDDDMDDMDDDMDDDMDMDDMDDDDDDDDDDMMMDDDDDMDMDMMDDMMDDMMMMMDMDDMDDMDDMMMDMDMMMDMMDDMDMDDDDDDMDMDDMDMDDMDMDDDDDDMDDDDMDMDDMDMDMDMDDDMMDMDDMMDDDMDDDMDDDDMDMDMDDDMMDDDDMMMMDDMDMDMDMMMMDMDDMDDMDDDMDDDDMMMMMMDMMDDDDMDMDDDMMMMMDDMDDMDDDMDDDDDDMDDMMMDDMMDDDDMDDMMDMDDDDDDMMMMDMMDDDDDDDDDMDMMDMDDDDDMDMMDDMDDDMDMMDMDDDDDMDMDMDMDMDMMDDDDDDMDDDDDMMDDMDDDDMDDMDMMDDDDDDDDMDMDDMDMDMMMDMDDDMDDDMMMDMMDDDDMDDDDDDMMDMDDMDDDMDDDDMDDDDMDDDMDDDDDMDDDDDDMDMDDMDMMMMMMMDMMMDMMDDDMDMDDDMMMDMDMMMDDMDDMMDDDMDMDDDDMMDMDDDDDDDMDMDDMMDDDMDDDDMDDDMDDDDDMMDDMDMDMDDDDMDDMMMMMDDDMDDMDMDMDMMDDDDDMDMMDMDDDDDDDDMDDMDMMMDDMDDMDMDMDDDMDDDMMMMMDDMDMDMMDDMMDM"

  3. 2

    Returns: "DDDMDMDMMDMDMDDDDDMMDMDDDMDDDDDDMDDMDMDDMMMDMDDMMDDDDMDMDMDMDMMDMDDDDDMDDMMMMDMDMDDMDDDDDMMDDMDDMDDDDDMDDDMDDMMMDMMMMMDDDMMDDMDMMMMMMMDMMMDDMDMDDDDMDDMDMDDDMMDMMMDDMDMMMDMMMMDDDDDMDMMMDDDDDDMDDDMMDMDMMDMMDMDDDDDMMMMMDMMMMDMMDMDMMDMDDDDDMMMDDMDDMMDDMDMDDDDDDDDDDDMMMMMDMDDMMDDDDMMDMMDDDDMDMMMDMMMDDDMDDDDDDMMDMMMDMDDDDMMDMDDMMDMDDDMDMDMMMDDMDMMDDMDDDDMDDDDMDMMDMMDMDDDDDDDMMDDMMMMDDDMMMDDDDDDMDDDDDDDMDMMDMMMMMDDMMDMDMDDDMMMMDMDMDMDDDDDDMMDDDDMDDDDMMDDDMDMDMDDDDMMDDDDMMMMDDDMDDMMDDDDDMMDMMMDDMDDMMMMDMMDMDMDDMDMMDDMDMDMDMMDDDDDMDMMDDMMMDDDMMMDDDMMDDDMDMMDDMDMMMMDDMMMMMDMMDDMMMDMDDMMMDMDDDMDDDDDMDDMMDMMDMDMMDDMMMMDMMDMMDMDDMMDDMDDDMDMMDDMDMDDMMDMDDDDDMDDDDDMDDMMMDDMDMMDMMDMDDMDDMMDDMMMDMDDMDDMDMMMDMDDDMDMMMDDMMMDMMDDMMDMDDDDDDMDMDMDMDDDMDMMDMDDDDDDMDMMDDMDMMMDMDDDMMDMDMMDMMMDDDMDDMDMMMDDMMMMMDMDDMDMMMDDDDDDMMMMMMDDDMMDMMMMMMMMDDDDDDMMDDDDDMDMMDDMDDMDDDMDMMDDMMDMDDMMMDDMMMMDDMMDDDDDMMDMDDDDMDMDDMMMDDMMDDMDMDMDDDDMDDDDMMDDDDDDDDDDDDMMDMMMMMDDDMMDMDDDMDMDDMDDDMDMMDMDMMDDMMDDMMDMDDMDDMMMMMDDMMDDD"

  4. 3

    Returns: "DDMMMDMDMDMMDDDDDMMMDDMMMMMDDDDDDMMDDMDDMMMMDMMMDMMDDMDDDDMDDDMMMMDDDMDMDDMMDDMMMMDMDMMDDDMDDDMMDDMMMMDMDMDDDMMMDDDDDDMMDDMDMDDMDDDMDDDDMMDMDMDDDDMDMDMDMMMMMDDDDDDDMDMMDMDDMDDDDDDDMDDDMMDDDMMMDDDDDDDMDMDDDDDDDDMDMMMMDDDMDDDMDDMMMMDDMDMDDDMDDDDDDMDDDDMDDDMDDDMMDMDDDDMMDDMMMDDMDMMDDDDDMDMDDMMMDDMDDDMMDDMMDMMMDDDDDMMMDDMMMDDMDDDDDMMMDDDDMMMDDDDDMMMMMDDMMMMDMDDDDMDMDMMDMDDDDMDDDDMMDDDMDDMMDMDDDMMMDMDDMDMMDDMDDDMMMMMMDDDDDDMDDDDMDDDDMMDDMMMMMDDDDMMDDDMMMMDMMMDMDDMDDMMDDMMMMDDDMDDDDDDDDDDDMDDDMDDMMDMDMDDDDMMDMDDDDDDMMMDDMMMDDDDDMDMDDMDDDDMMMDDMMDDDMDDDDDDMMDMMMDDDMMDMDDDMMDDDDMMDDDDMMDDDMDMMDMMDDMMDMDDDMDMDMDMDMDDDDMDDDMDMMMMDMDDDDDMDMMDDDMDMDMDMDMDMMMMMDDMDMDMDMDMMMDMMDDMDMMDDDDDDMDDMDDMMDDMMDDDDMDDDDMMDMDDDMDMDMDMDMDMDMMDMMDMMDMDDMMDMMDDDMMMDMDDDDDMMMDMDDDDDDDDDDDDMDDMDDMDDMDMDDMMDDMDMDDDDDMMMDDDDMMMDDMDDMDMMDDDDMDDDDDDMMDDMDDDDMMMDDDDMMDDMMDDDMMDDDMDDMMDDMDMMMDMMDDMMDMDMDMDDDMDDMMDMDDDDDMDDMMDDMMDDDMMMDDDMMMDMDMDDMMMMMDDMDMDDDMDMDMMDMDMDMMDMDDDDDDMDDDDDMDDDDMDMDDDDDDDDDDDMMMDDDMMDMDDDDDDD"

  5. 4

    Returns: "DDMMDDDDMDDDDMDMDDMDMMMDDMDDDMDMDMDMDMMMDDDMDDDMMDMMMMMMDMDDDMDMMDMMDMDMDMMMMMDDDDDDMDMDDDMDDMDDMDDDDDMMDDDDMMDMMDMDDMDMDMMDDDMMMDMDDDMDDDDMMMDDMMMDMDMDDDDMMMMDDDMMDDDDMDDDDMDDMMDDDDDDDDDDDMDMDDDDMMDMDDDDDDMMMDDMMDMDDDDDDDMDDMDMDDDMDDDDMDDDDMMDMMDDMMMDMDMDMDDDDMDMMDMDMDMDDMMDMMDMDDDDMDDDMDDMDDMMMDDDMDDDDMDDMDDDMDMDMDDDDDDDDDDDMMDDMMDDDDDMDDDDDMMMMDMDDMDMMDDDDMDDMMMMMDDDDDMDDMDDDDDDDMDDDDMMDDMDDDMDMDMDDDDMDDMMDMDDMDMDMDMDDMDMMMDDDMMDMDMMDDDDDDDMMDDDDMMDMMDMMMMMMDDMDMMDDMDDMDMMDMDMDDMDMMDDMDDDMDDDDDMMDDMMDMMDMDDDDMDMMDDDDMMMDDMDDMDMDDDMDDMDDMMDDDMDMMDDDDDDDMMDDDDDDDDMDDDMMMDDDDDDDMMMMDDDMMMDDDDMMDMDDMDMMDMDDMDMMDDDDMDMMDDMMDDMMDMMMMDMDMDDDDDMMMDDMMDDMDDDMMMMDMMDDMMMDDDDDMMDMDDMMDDMMDMDDDDDDMMDDMMMMDDMDDDDDMMDMMDDDDMDDDDDDDMDDDDMDDDDMDMDDMMDDDDDDMDDDDDDDDMMMDDDMDDDDDDDDDMDDDMMMDMDDMDMDDDMDDMDDMDMDMDDDMDMMMDMDMDDDMDDDMDMMMMDDDMMDDDDMMMDDDDDMDDDDDMDMMDDDMDDMDMDDDDDDMMDMMMMMDDMDDDDDDDDMDDDMDDMDDMDDMDMMDMDDDDDDMMMMDMDDDMDDMDDDMDMDDDMDMDDDDDMMMDDDDDDMDMDMMDMMDDDDDMMMMMDDMDMDDMMMDDDMMMMMDDDDDDD"

  6. 5

    Returns: "DDDMMDDMMDDDMDMMDMMMMDDMMMDDDDDDDMMDDDMDDDDDMDDMMMMDDMDDMMMDMDDMMDDMMMMDMDDDDDDDMDMDMMMDDDDDDDDMMMMDDDDMDDDMDDMDDMDMDDMMMDMDMMDMDDDDDDDDDMMMMMMMDMMMMDDDDMDDMMDMDDMMDMDDMMMDMMMDMDDMMMDDMMDDDDDDDDDDDMDDDDMDDDMMMMDDDMMDDMMMDDMDDMDMDMMMMMMMDDMDMDDDMMDDDMDDDDMMDDDDDMDDDDMMMMDMDDMMDDDDDDDDMDDMDDMDDDMMDDDMMMMMMMDDDMDDDMDDDMMDMDDMMDDMDDMDMDMDMMDMMMDDMMDMMMDMMMDMDMMMMMDDDDDMMDMDDDDMMDMMDMDDDMMMDDDMMMDDMDDMMDDDDDMDMDMMMDMDDMDMMDMDMMDDDMMMDDDMDDDMDMDDDDDDDDDMMMDDDDMMMMMMDDDDMMMDMDMMDMDMMDMMDDDDDMMMMMMDDDDMMMMDMDMDDDDMDMDMMMMDMMMMMDDDDDMDMMDMMDDMDMMDDDDDMDDDMDDDDDDMMDDMMMMMDMDDMDDDDDDDDDMMDDDDMDMMDDMDMDDMMMDDDMMDDMMDDMDDDDDDDDMMDDMDMDMDDDMMDMDDDMMDDMDMMDDDDDMMDDDDMDDMDMDDMMMDMMDMMDDMDMMMDMDMDMMDMMMMDMDMDDMDMDDDDDMDMMMMDMDDDDMMMDMMMMDDDDDMDDDMDDDDMDDMDMMMMMDMDDMDDMMDMMDDDMMMMDDDMDMMDDDDMMMDDMMMMMDMDDMMMMDMMMDMDDMMDMDMMMDMDDDDMDMDMMMDDDMDMMDDMMDMDMMMMDDDMDDDMMDDDDMMDDMDMDMDMMMDMDDMDDMDDMDDMMDMDDDMMDDDDMDMMDMDDDMDMMDMDDDMDMDDDMDDMMDDMDDMDDMMDDMDDDMDDMMDDDMDMMMDDDDDMMDMMDMDMMDDMMMDDDMDDMDDMMMMDMMMDDDD"

  7. 6

    Returns: "DMMDDDDMDMDMMMDDDMDMMDMDDMDMDDDDDDMDDMMMMDMMDMMMDDDDDDDMDDMDDMDDMDMDDDDMDDDDMMMDMDDMDDMMMDDMDMMDDMDDDDDMDDMMDDMMMMMMMMMMDMMDMMDDDDMDDDMMDDDDDMDDDDMDDDDMDDMDMMMMMMDDMDDMMDDMMDMMMDDMDDDMDMDMDMMMDDMMDDDMDMMMDDDMMDDMMMDMMMMDMDDDDMDMDDMMDMDMMMDDDMDDMMMDDMDDDDDDMDMDDDDMDDDMDDMDDDDMDDDMMDDMDDDDMMDMMMDMDDMMDDDMDDMDMDDDDDDMMMDMMDDDDDMDDMDMDDDMDDDMMMDDDDDDMMMMMDDDMDDDDDMMMMMDDDDDDMDDDMDDDDMDMDDDMDMDDMDMMDMMDDDDMMMDDDDMDDDDDDDMDMDDDMDMMDDDMDDDMDMDDMDDDDDDDDDMMMMDMMDDMDMDMDDMDMDMDMMDMMMMMMDMDMMMMMDDDMMMDDMMMMDDMDDDDMMMDDDDMDMDMDDDDMDDDDDDMDMMMMDDMDDDMMDDDMMDDDMMMDMDDDDDMMDMMDDMMMDDMDDMMMDDMMDDDDDMDDDMDMMDMDDDDDDDDDMMDMDDDMMMDMDDMDMDDMMDMDMMMDMMDDDDMDDMMDDDMDDMMMDDMDMDMDDMDDDMDDDMDMDMMMDDMDDMDDDMMDMDMMDMMDDMMMDMDMMMMDDMMMMMDDDDDDDMDMMMMMDDDMMDDMMMDDDMDDDDMDDMDMMMDMMDDDDMDMDMMMDDMDMMMDMDDDDMMDDMDDMDDMDMMDMDDMDDDDDDDMMDDDMDDDMMMDDDDDDDMDDMMDMMMDMMMMDMDDDDDDDMDDDDDDMDDDDMDMMDMMMDDMMDDDMMMMDMMDDDDMDDMMDDDDDMDMDMMDMMMDMMDDMDDDDDDDDDDDMDMMMDDDMMDDDMDDDDDMDDDDDMMMDDMMMMDDDMMMDDDDMDDDMMDMMDMDMMMDDMMDDDMMMM"

  8. 7

    Returns: "DDDMMDDMMMDDDMDDDDDDDDMDMDMMMDMDDMMDMMMDDDMDDMMMDMDDMDDMDMMMDDMDDDDMDDDDMMMDDDDDMMDDMDDDDDDMDDMMDDDDDMMDMDDMDDDDDMMDDMDDDDDMMDDDDDDMDMDMDMMDMDDDDMMDMDDMMDDMDMDDMDDDDMDDDDMDMDDDDDDDDDMMDMDDDDMMMDMDDMMDDDDMDDDMMDDDDDMMDDDMMMMMMMDDDMMDDMMDDMDMDMDDDDMMDMDDMMMDDDDMDMMDMMDMDDDMDDMDDMMDMMDDMMDMMMDDMDMMDMDMDMDMDMDDDDMMDDMMMDMDMDDDDMDMMDDMDMMDDDDMMMDDDDDDDDDDDMDDMMMDMMMDDDDDDDMMDDDDDMMDDMMDDMDDMDMDDMDMMDMDDMDMDDDMMDDDDMMMDDMDDMMDDMDDDDMDDMDDMMMDDDMDDMMDMMMDDMDMDMMMMDDMMDDMDDDDDMMDDDMMMDDDMDDDDMMMDMDMMDDDDMDDDDMDDDMMMMDDDMMMDMDDMMMDMDDMMDDDDMMDDMDDDDDDDMDMDDDMMMDMDDDDDDDMDMMDMMMDDDDDMMDMMDDMDMMMMMDDMDDDDDDDMMDMMDDMMDMDDDMMMDMMMDDDDMDMMMMDDDMMDDDDDDDDMDMMDDDMMDDDDDDDMMDDDDDMMMMMMDDDDDMMMDMDMMDMDDMDDDMMDDMMMMMMMDMDMDDMMMDDDDDDDMDDMMDDMDMMMDMMMMMDDMDMMMMDDMMDMDMDDDDDDMDMMMMDMMDMDDDDDDDDMDMDMDDMDMDDDDDDMMMMDMMDMDMMDMDDMDDMDDMDMMDMMMMMMMDMDDMDDMMDDMMDMDDMMDDMMDMDDDDMDMMMMDDDMDMMMDDDMMDDDDDMDMMMMMDDMDMMMMMDDDMDDDMMMDDDDDDDMDMMDDDMMDDMDDDDDMMDDMDMMDDDMDMMMDMMDDMDMMMDMMMDMDMDMDDMMDDDDMDMDDMDDDDDDMDDMMDD"

  9. 8

    Returns: "MDMDDMMDMMDDMMMMDMMMDMMDMDMDMDDMMDDDMDDDMMMDDDMMDDMDMMDDMDMDDDMDMDMMMMMMMMMMMMMMMMMMMMDDMDMDMMMDMDDMDMDMDDMDMMMDMDMDMDMMDMMMDDDMMMDMMMDDMMMMMMMDDMMMMMDDMMMDDMDMMMMMMDMMDDMMMDDDDDDDMDDMMDMMMMDMDMDDMDDDDDDDDDDDDMDDMDMMMDMMMMMMDDDMMDDMMMDMMDMMDMMMMDDMDMMMDDMMMMMDMMMMMDMDDDMDDMMMMMDDMDDDDMMMMDDDDMMMMMDMMMDMMDDDMMMMDMMDMMDDMDDMMDDMDDMMMDMDMDDDDDMDDMDDMMMDMMMMDDDMMMDDDDMDDMMMMDDDDMDDMMMMDMMDMMDDMMMMMDDMDDMMMDMMMDMMMDMMMMMDMMDMMMMMDMMDDMMMDMDMMMMMMMMMMMMDMDMDDMMDMDMMMMDMDMMDDMMMDMMDDMMMMDMMMMMMMMDDDMMDMMMMDMMMDMDDDDMDDMMDMMDMDMMDMDMDMMDDMMMDMMMMDMMDMMMMDDDMDDMMDDMDDDDDMMDMMDDDDDMMDMDMMDMMMDDMMDMMDMMDMMDMDMMMDMDMMMDDDDDMDMMDDMMDMMMMMMMMMMMMDDDDMDMMMMMMDMMDMMDMMDDDDDDDMDDMDMDMDDDMMDMMMMDMDDDMDDDMMMDMDMMMDDDDDMDMMMDMDDMMDMDDDMMDMDMMDMMMDMMMMDDMDDMDDDMMMMMDMDDMMMMMMMMMDDDMMDDDDMDMMDDDDDDDDMDMDDDMDMDDDMDMMMDMMDMMDMDDMMDMDMMDDMMDMDDMDMMMMMMMDMMMMMMDDMMMDMMDMMMDMMMMMMMDMMDDDMMDMDDMDDDMMMMDMDDDMMMDMDMDMDMMDMDMDMMMMMMMMMDDDDMDMDMDDMDMMMMDMDDDMMMMMMDMDDMMDMDMMMMDDMMMDMMDMMMDDDMMMDMMMDMDMDMDMMDMMMDDDDMM"

  10. 9

    Returns: "DDDMDDMMDDMDMMMMMMMDMMMDMDDMMDDDDDMDDMDMMMMMMMDMDDDDDDDMMDMDDDDMDDDMMDDDMDMMMDDMDMMMDMDDMDMDDMDMDDDDDDMDDDMDMMMDMDMDDMMDMMDDDMDDDDMMDDMDDDMDDDMMDDMDMDMDDDMDDDDMDDMMDDMDMDDDMMMMMDDDMDMMMMDMDDDMDMMDDDDDDMMMDDMDDDMDMMDDMDMDDDDMMMDDMDDDMDDDDDDMMDDDMMMDMMDMMMMDMDDDMDMDDMDMMMDMMDMDDDDDMMMDMDDDMMMMMMDDDDMDMMDMMDDMDMDDMDDMDMMMDDDMMMMMDMMDMDDDDDMMMMMDDMDDMDDDDMDDDMDMMDDMMMDMDDMDMDMDDDMDDDDDDDMDMDMDDDMMMMMDMMMMDDDDDMMMMDDMDMMMDDDMDMDDDDMDDMDMMMDMDDMMDMMMMMDDMDDMMMMMDDMMDDMDDMDMDMDMDMDMDMMMMMDMMMMDMDDDDMMDDDMDDMMDMDDDDDDDMMDMDDDDMMDDDMMMMMMDDDDDDMDMMMDDMMMDDDMDMDMDMMDMMMDMMMDMDDDDMDDMDDMDDMDMMDMDMMMMDMMDMDMDDMMDMMDMDDMDDDMMDMDMMMMDMMDDMMMMMDDMMMDMMDMMMDDMDDMDMDMDDMMDMMDMDMMDDDMDDMDDDMDMDDDMDDMDDDMDMDMDMDDDMDMDDMMDMMDDMDDDDMDDDDMMMMDDMDDMMDDMDMMDMMMDMDDMDDDDMMDMMMMMDMDMMMDDDMMMMMMMDDDDDDMMMDDMDMMDMMMMDMMDMMDMMMDDMMMDMDDDMDDDDDDMDDDDDMDDDMDMMDMDMMDMMMMDMDMDDDDDMMMDMDDMMMDMDDDMDDDDMMDMDMDMDMDDDDMDMDMMDMDMMMMDDMDDMDDMDMDDMMMMDDDDMMDDDMMDMDDDMDMDDMMMMMDMMDMMDDDDDMDMMMDDDMDMMDDDMMDDMMMDMMMDMDDDMDMMDDDD"

  11. 10

    Returns: "MDDMDDMMMMDDDMMMDMDMMDDMMDMDMDDDMDDMMDDDDDDDDDMDMDMDDDDMMMMDDDMDDDDMMDMMDMDMDDMDDMMDDDMMDMDMMDMMMMDDMDMDDDDDDDDDMDDDDMDDDMMDMDDMDDDMDMDDMMMDMMDDMDMMDDMDDDDMMDMMDMDMDDDDDMDDMDDDMDDDDDDMMMDDMDDDMDDDMDDDDMDDMDDMDDDDDMDDMMDDMMDDMDMMDDDMMMDMDDMMDMMDDDMMDMDDMMDMMDDMMMMMMDMMMMMMDMMMDDMDDDDDMMDDMDMDMDMDMMMDDMMDDMMMDMMDDMMDDDDMDDMDMMMDMMDDDDDMDMMDMDDMDDDMMDDDMMMDMMDDMMMMMMMDDMDDMDMDMMMDDDMMDDDMDDMMDDMMMMDMDDMMDMMDDMMMDDDDDDMDDMDDMDDDDDDDDMDMDDDMMDMDDDDMDMDDMDDDMDDDMDMDDDMDDMMDDMDDDDDMMMMDDMMDDDDDMDDMDDDDMMDMMMDDDDMDMMMMDMDMDMMDDMDMDDDDDMDDMDDMDDMDMDDMMMDMMMMMDDMMMDMDMDDMMMDMMDDDDDDDDMDDDDMDDDDDDDDDMDMMDDMDDDDDDMDDDDDDMMDDMMDDMDDDDDDDDDDDDMMMMDDMDDDMDDDDDMDMDDDDMDDDDDDMMMMMMDDMDMMDDMMDMDMMDMDMDDDDDDDMMMMDDMDDDDDMMMDDDDMDMMMMMDMDDDDDDDDMMDMDDDDDDMMDMDMDDDDDMMDDMMDMMDDDMDMDMDMDDDDMDDDMMDMMDMDDDDMDMDMMDMMMMDDMDDDMDMMDMMMDMDDMMDDMMDDDDMDMDMDMDDMMDMDDDMDDDDDMDMDDMDMDMDDMDDMDMMDDDDDDDDDMMMMDDDMMDMDMMDDDMDDDDMMDDDMDDDDDMDMDDMDDMDMDDDDMMMMDDMDDMDMMMMDDDDMDDDDDDDMDDDDDDMMMMMDDMMDDMDDDDDDDDMDMDDDDDDDMMDMD"

  12. 11

    Returns: "DDDDMDDDDDDDMDDMMDMMDDDDDMMDMDMMMDMDDMDDDMMMMMMDDMMMDMDMDMDMDMDDDMDDDDMDDMMDDMDDDDMMDMMMDMDMDDDMDDMDDDDMDMMDDMDDMDDDDDMDMDDDMDDDMMDDMDDMDDMMDDDDDMDDDDDMDDMDDDDMDMDMMDDDDDDDDDMDMDDMDDMDDMMMMDDMDDDMMDDDDDDDDMMDDDDDMDDMDDDDMDDMDDMDMDMMMDMDDDDDMDDDMMMMDMMDMDDMMDMDMDDMDDDDDMDDDMMMMDDMDMMDMDDDDDMDDMMMDMMDDDDDMDDDMDMDDDDDMMDMDMMDMDDDDDDDDDMMDDMDMDDMMDDMDMDDDDDMMMMDDMMDDDDDDDMMDMMDMDDDDMDDDDDMDDDDDMDMMDDDMDMMDMMDMMMDDDDDDDMDMDMMMMMDDMMMDMDMDDMDDDMDMDMDDMDDDMDMDDDDMMMMDDMDDDDMDDDDDDMDMMDMMMMDMMDMDMDMDDDMDDDDDMDMDDDMMDDDMDDDDDDDMMDMMMMMMDMDMDDDMMMDMMDDMDMMDDDDDDDMMDDDMMDDDMMMDDDMDDDDDDDMMDMMDMMMDDDMMDMDDMMDMDDDMDDDDMDMDDDDMDDMMDMMMDDMMMMDMDDDDDMDDDDDMMMMDDDMMDMDMMDDMMDDDDMDDDMMDDMDDDMDDDDMMMDMMDMMDDMMDDMDMDDDDDMDMDMMDDDDDDMDDMMDDDMMMMMMMMDDMDDMMDDDDDDMMMMDMMDMMMMDDDDDMMMDMDDMDMDDDMMMDDDMDDMDDDDMDDMDMDMDDMMDMMDDMDDMDMDDDMMDDMDDDMDDDMMDMDMDMMDMMMMDDMDDDMMDMDMMMDDDDDDDMDMDMDDDMDDMMDDMMMMDDMDMDMDDMDMMDMMDDDDDDMMDDMMDDMDMDMMDMDDDDMDMDDMMDDMDMMDDDMDMDMDDDDDDMDMDMDDDMDDDDMMDMDDMMDDMDMMMDMMDDMDDDDDDDDDD"

  13. 12

    Returns: "MDDMMDDDDMDDDDMMDMMDDMDMMDMMDDMDDDMMMMDMMMDDMMDMDDMMDMDMMDDMMMDMMDMMDMMMMMDMMMMMMDMDMMMDMMDMDMDDDMDDDDDDMMMDDDMDDMDDMMDDDDMDDMDMDMMMMMMDDMDDMDMDDMDDMDMDDDDMMDMMMMMMDMMDMMDMDDDMMMDDDDDDMMMDDDMDDMDMDMDDDDMDDMMMMMDMDMDDDMMMDDMDDDDMMMDDMDDMDDMDMMDMDDDMDMMMMDMDMMMDDMDDMMDDMMMMMDDMMMDDMDMMMMDMDMMMDDDMMMMDMMDDDDMDMMMDMMDMMMDDMDMDDMDMDMDMDDMMMMMDDMMDDDDDDDMMDMDDMMDDMDDMDMMDDDMMMMDMMDMDMDMMDMDDMDDMMDDMMMMDMMDDMDMDMDMMDDMDDDDMDDDDDDDDDDDMMDDMDMMDMDMMMDDDDDDMDDMDDMDDDMMMDMDMDMDMDMMDMMMDMMDDDMMDMDDDDDDMDMDDMDDDDDDDDMMDDMMDDMMMMMDMMDDDDDDMMDDDDDDMDMMMDDDDDDDMDDMMMDDDDDMDDDMMDDMDMMMDDDMDMMMMMMMDMMDDDDDMMDDMDMDMMMMMMDDDMDDMMMMMDDMDMMDDDMDDMMMMMDDMDDDDDMMDMMMMMDDMDMDMDMDMMMDDMMDDMDDDMDDMDDMDDDDMDMMMMDDMDMDDMMMDDDDMDMMMMMMMDMDMMDDDMDDDMDDMDMMDDMDMDDMDMDMDDDMMDMDDMMMMMMMDDMMDDMDMDMDDMMDDMDMDDDMMMMMDDMMMMMMDMMMDDMDDDDMDDMDMMDMMMDMMMDMDMMDMDMDMDMMDDDMDDDMDDDDMDMDDMMMMDDDMMDMDDMDMMMMDMDMMMDMDMMMMDDDDDMDDDDDMDMMMDMMMMDMDDDDDMMMDMDDMDMDMMDMMMDMMDMMDDDMMDDDMDDMMMDDDDMMDDMDDMMMMDDMMDDDMMMDMDDMMMMDDMMMDMMDDDMDD"

  14. 13

    Returns: "DMMMMMDDDDMDMDMDDDMMDMMMMDDMDMMMMDMDDDMMDMDMDMDDMMMMMDMDDMMMMDMDMDDMMMMDMMMMMMMMMMDMMDDDMMDDMDMDMMDDDDMMMMDMMDDMMDMDMDMDDMDMMDDMMMDMMDMDDDDMDMMMMDDDMMMMMMMDMMMDMDDMDDDDMMDDMDDDMDDDMDDMMDDMDMMMDDMMMMMDDMDMDMMDDMDDDDMMDDMMMMDDDMMDDMMMMMMMMMDDMDMDDMMMDMDDDMDMMMDMDDDDMMDDDMMMDMMDMMDDDDMMDDMDDDMMDMDDMMMMMMMMDDDDMMMDMDMDDDMMDDMDMDMDDMMMMMMMDDDMMDDMDMDDMDDMMMDDMMMDMDMMDDDDMDMDMMMDMDMMMMMMDDDDMMMDMDMDDMMMMDDMDDMDDDMDDMMDDMMMDDMMDMMDMMDMMDMDMMDDMMDDMMDMDDDDDDDDMDDMDMDMMDMMDDMMDMDDMMMMMMMMDMMMMDDDMDDMDDMDDDDDDDMDMMDMDMDDMMDMMDMMDDDDDMMMMDMDMMDMMDMDDDMMDMMDMDDMMDDMDMDDDMDDDMMDMDMDMMMDDMMDMDMDMMMDDMDMDDMDMMDDDDMMMDDDDDMDDDDMDMMMDMDMDDMMMMDMDDDDDDMMMMDDDDDMMDMDDMDDDDDDDMMDMDMMDMDMDDMDMDDDMDDMMMDDDDMMDDMDDMMDMMMMDMDMDDMDMMDMDMMMDDDMDMDMMMMMDDDDMMMMDMDMDMMMMDDMMDDDDMMMMDMDDMDMMDDMDDDDMMMDDDDDMDMMMMMDMMMDMDMMDMMMMMMMMMMMMMMMMDDDDDMDMDMMMMDMDMMMDDMDMDDMMMDMDMDDMDDDDMMDMDMMMMDMDDMMMMMMMDDDDDDMMMMDDMMMDDMMMDDMDMMMMMDDDDMDMDMMDMMMMMMDDDDDMDMDMMMDMMDDMMDDMMMMMMMMMMDDMMMMMDDMDMDMDDDMDDDMDMMDDDDMDDDDMMDDDDDD"

  15. 14

    Returns: "DDMDDDMMDDMDMDDMMMDMDDDMDMMDMMDMMMDMMMDMDDDDDMDMMMMDMDDDDMDMDDMMMDDMMMDDDDDDMDMMMDDDMMDDDMMMMDDMDMMMMMMMDMMDMDDDMDMDMMMMMMDDMDMDMDMMMDMMMMDDMMDMMMMMDDDDDDMMMMDDDDMDDDDDMDDMDMMMMDMDDMMDDMMDMMMDMMDMMMMDMMMDMMDMMMDMMDMDDMDMDMDMMMDDMMMMMDMMDDDMMDDMMMMMDDDMMMDMMMDMMDMMDMMMDMMMDDMMDMDDMDDDDMMMDDDMMDMDDMDMMDDMMMDMMMMDMDDDMMMDDDMMMDMMDMMMDDDDMMMDDMMMDDDDMMMMMMMMMDDMDMDDMMDDDMMMMDMDDDMDDDMMDDMDDDDDMMDDMDDMMMDDDDMDDDMMDMDMMDMDMDMMDDMMMDDDMDMDDDDDDMMDMDMDDDMDDMDMMDMDDMDMMMDDMDDMMDMMMMMMMMDDMMDMDMMMMDMDMMDMDMDDMMMMDDMMDMDMDDDDMDMDDMMMMMDMMDDMMMDMMMDMDDDMMDDDDMMDMDMMDDDDMMDMDDDMMMMMMDDMMDMMDMDMMDMMMMDMDDDMMMMMDDMMDDDDMMDDDMDMDMMMMMMDDMDMDMDDMDDDMMDMDDDDMDMMDDMDDDDDMMDDMMDMDMMDMDMMMDMMMMMMMDDDDDDDMDMDMMMMMDMDMDDDMMMDDMMMDMDMDMDDDMDMDMDDDDMMDMMDDDMMMMDDMDMMDMMMDDMDMDDMDMMDMMDMMDMMDDDDMMDMDMMMDDMMMDMDDMMDMMMDMMDDMDMMDMDDDMMDMMMMMDMMDDMDDDMMMDDDDMMMMMDMMMMMDDMMDMMMDDMDMMDMMMMMDDMMDMDMDDDMDMDDMMDDMMDDMDMMDMDMDMMMMMDMMDDMMMMMDMMMDMDDDMMMDDMDDDMDDMMMMMMDMMMDDMDDMMDDMDDDDMDDMMDMMDMMMMMDDMDDMMMDMDDDMDDDDMDD"

  16. 15

    Returns: "MMMMMDDMMDMDMMMMMMMDDMDMDMDDDMMDMDMMMDMMMMMMDDMDMMDMMMMDMMMDDDMMMMMDDMMDMDDMMDMDDMMDMDMMMDMMMMMMMDDMMMDDDMDDMDMMDMMMMMDMMDMMMMMMDDMDMDDMDMDMMDMDDDMMMMMDDMMMMDMMDMDDDDMMMDMMMMMMDDMMMMDMDMMDDDDMMMMMMDMMMMMMMDDMDMDMMDMMMMDDDMDDMMDMMMDDMMDMMMMMMDMMMDDMMMMMDDMMMMMMMMMDMMMMDDMDMMMMMMMDDDMDDDDMDMMDMMMDMDDMMDMMDDMMDMDDDDDMMDDDMDMDDMMMDDDMDDMMMMDMMDDMMMMDMMMMDMDDDMMDDDDMMMDDDMMMMDMMDMDMDMDDMMDMMDMMDDDMDDMDMMMDMMMMMDMMMMDDDMDMDDMDDMDDMMDDDDMDDMMMDDMMDMDDDMMMMMDDDMDMMMMMMDDMMMDDMDMMMMMMMDMMMDMMDMDMMMDMMDDMMDDMMDDDDMMMMMMMDMDMMMMMDMMDMMDDDMMMMMMDDDDMMMMMMMMMMMMMMMDDMMDMDMDDMMMMDMDMMDMDMDDMDDDMMDDDMMMDMMDMMMDDMMDDMDDMMDDDMMDDMDDMDMMDDDMDMMDMDMMDMDDDMMMMMDDDMMMDMDMDDDDDDMMMMMDDMMDMDMMMMDDDDMDDDMMDMMMDMMDMMDDMDMMDDDDDMMMDMDMDMDDDMDMMDMDMMDDMDMDDDMMMMDDMDDDDMMDMMMMDDMMDDDMDDDMMDMMMDMDDMDDDMDDMMDMMDDDMDMMDMDMDMMMMMMMMMMDMDDMMMMDMMMDDMDMDMDMDDMMMDDMMDMDMMDDDDDMDDMMMMMDMDMDMDDMDDDMMMMDDMDDDDMMDMMMDMDDDDDMMMMMMDMDDMMMDDDDDMMMMMMMMDDMDMMMDMMDMMDMMMMMDMDDDMMDDMDMMMMDDDDDMMDMDDMMDMDMDMDMMMMMMDMDMMDDDMMDMDDMM"

  17. 16

    Returns: "MMDMDDDMDMDDMDDMDDDMDDMMMMDDDMDDDDMMDMMMMMDDMMDDDMMDMDDMMMDDMDMMMMMMMMMDMMDDDMMDMDMMDDDMMMDDDDDDMMDMDDDDMMMDDMDDDMMMMDDMDMMMDDDDDDDDDDDMMDMMDMMDDDMDDMMDMDDDMDMMDDMMMMDMDMDDDDMMMMMDDDDDDMDMMMMMMDMMDMDMMDMDMMDDDDMMDDMDMDMMMMMDDMMMMDDDDDMDMDMMDDDMMDDMMDMMDMMDDDMDDMMDDDMMDDMMMDDMMDDDMDDMMDDMMMMMMMDMMMDMDDDMMDDMMDDDMMMMMMMDMDDDDMDMDMMDDDMDMDMMMMMDMDDDDMDDDDMMMMDMDDMDMDMMDMMMDMMDDMDMMDMMDDMMDDMMDMMMDDDDMMMMDDMMDMMMMMDMMMDMDDMMMDDMDDDMDMMMMMMDMMMDDMMDDMMDMDDMDMDDDDMDMDMDDMDMDMDDDDDMDDMDMDDMMMDDDMDDMDMDDDMDMDMMMDDMMMMDDDDDDMDDMDMDDDDDMDDDMMMMMMMMMDDMDMMMDMMDMMDDDDMDMMMDDDMDDDDMMDDMDMMDDDDMMDDMMMMDDMDDDDDDDMDMDMDMMMDMMMMMDMDDDDDMDMDMDDDMDDDMMMMMMDMDDDDDDMMMDDMMDMMMDMMMMMDDDDDMDDDDMMDDMDDDMMMDMMMMDDDDDDMDMDDDDMDMMDMDDDDDMMMMDDDMMDMDDMMDMMDDDMDMDDMMMDMDMMMMMDMDDMMDMMDMDDDMDDMDDMMDMMDDDDMMMDDMMMMDDMDMDDMMMDMDMMDDMMMMDDDDMMDMMDMDMMDMMMMMDMMDDDDMMDMMDMDMMDDMMMDMMMDMMDDDDMDDMDDMDMDMMDMMMDMMMMMMDMDMDMMMDMMDMDMDDDMDMMMMDDDMMDDDDMMMDDMMMMDDMMDDMDDMMMDDDMMMDMDMMMDMDDDDMMDMDMMDDMDMDMDMDMDMMDDMMDMDDMDDDDDD"

  18. 17

    Returns: "MDDDMDMMMDDDDDDMMDMDMDMDMMDMMDDDDMDMDDDMMMDMMDDMMDMMDMDDDMDDMDMMMMDDDMMDMDMMDMMMDMMMMDDDMDMMDMDDMDDMDDMMMDDMMMDDDDDDMDDMDDDMDMMDMDDDDMDMMMDDDDDMMDDMMMMDDDDMMMMMMDMDMMDMMMMDDDDDMMMDMMMMDDMDMDDMDDDMMMDDMMDDDDDMDMDMMDMDDDDMMMMDMMMDMMMMDMDDDDMDMDDMMMDMDMDDDMDMDDDDMMMDMDDMDMDDMDDDDMDDDMDMDMDMMMMMDMDDDDDDDMMMDDDMMDDMMDDMDDMDDMDMMDDDDDMDDDDDMDMDDDDDMDMDMDDMDDMMDMMMDDDDMDDDDDMMDMDMMDMDMDMDMDDMMMMDDDMDDDDDDDMMDDMMDDMMDDMDDMDMDDMDDDDMDDDMMDDDDDMDMDDDDDMMDMDDDMMMDDMMMDDDMMDMMDMMMDMMMMMDDDDMMDMDDMMDMMMMDDMMDDMDDDMMMMMMDMDDDDDMDMMMMMDDMDMMMDDMMDDMDMMDMDMMDDMMDDMDDDDMMDDDDDMMDDDMDMMMMMMMMDMMDMDDDDMDDMMMDMMDDMMMDDMDMDMDDDMMMMMDMDDMMDDDMDDDDMDMDDMMDMDMMDDMDDDMDDDDMDDDDDDDMDMMDDMMDDDDDDDMDMDDDMMDDMDDMDMDMDMMMDDDMMDDDMMDMMMDDDDMDDMDDDMMMDDDDDDMDMDDDDMMMDDDMDMDDDDMDMMDDDMDDDMDDDMDMMDMMDMDMDDDDMDDMDMDDMDMDDDDDDMDMDDMDDDMDMMDMDDMMDDDDMDDMDMMMMDMMDDMDDDMDDDDDMMDMMDMDMDDDMDMDMDDDDDDMDMMDDDMDDMDDDDMMMDMDMMDDDMMDDMDMMDDDDMDDDDDMMMDMDMDMDDDDDMDMDMMMMDMDMMDDDMMDMMDDMDDDDDMDDMMDMDDDMDDDDDMMDMMMMMDDMMMMDDDDDDDDDDD"

  19. 18

    Returns: "DMDDDDMDDMDMMMDDMMMMDDDMDMMDMMDMDMMDMDDDMDDMDDMMMDDMDMDMMDDMMMMMMDDMMMMDMMDMMDMMDDDDDMMDDMMMDMMDMMDMMMDMDMDDMDDMMDMMMMDMDMMDMDDMMMMMDDDDMDMMMDMDDDDMMDMDDDDDDDMDDMMDMDDDMMMMDMDMDMMDMMDMDMMDDDMDMMMDDMDMDDDDMDMDMMDDDDMMMDDMDMDMDMDMMDDDDMDMMMDMMMMMMDDMDDMMDMMDDMDMMMDDDMDMMDMMMDMMMDMDDMMMMMMMDMMMMMDMMMMMMDDMMMMMMDMDMMDMDMDDMDDMDMMDDMMDDMMMMMMDMMMDMMMDDDDMMMMMMMMDDMMMDMMMDMDMDDDMMDMDMDMDMMDDMMMMMDDDDDMDDDDMMMMDDMMMDDDDMMDDDMDMMDDMMMDDMDMMMMDMDDDMDDDDMMDDDDMMDMDMDDMMMMDMDMMMDMDDMMMDMMDDDMDMMMDDDMMMDDMMMDMMMMMDDMMDMMMMMMMMMDDMMMDMMMDMDMMMDMMDDDMMDDDMDMMMMMDDDMMDMDDMMDMDMDDDDDMMDDMMMDMMMDMMMMMMMMDMMMMDDMMDDDDMDDMDMDDMDMDMDMDMMMDDMMDMMDMMDDMMDMMDMDMMDMDMMDMDDMMDMMDMDMDMDMMMDDDMMDMMMMMMDDMMDMDMMDMDMDDMDMDDDMDMDMMDDMMDMDMMMMDDMMDDMDMMMMDMMDMDMDDMMMDDMMMMDDMMMMMMMDMMMMDMMDDMMMDDMDMDMMMMMDDDMDDMDMDMDMMMMMMMDDMMMMMMMMMMMDDMMMDMDMMDMDMMMMMDMMMDDMMDMMMMDDDMDDDDDMDMDMDDMDMMDDMDMMDMDDDDDDMDMMDMDMDDMDDMDDDMMMDMMMMMMDDMDDDDMMMMMDMMDDMDMDDMDMDDMDDDMMMDDDMDMMMMMMDMDMMMDMMDMDMDDDDDMMDMMDMDMDDDDDMMDDMMMMMDDDDM"

  20. 19

    Returns: "DMDDMDDMDMDMMDMDMDMDMDDDDDDDDDDMMDDDMDDMMDMDDDDDDMMMDMMMMDMMDDMMMDDMDMDMDDDMMDMMMDMDDMDMDMDDDDDMMDDDDMMMDMDMDDMMDMDMMMMDDMDMDDMDDDDDDDMMMMDMMDMDDMDDDMDMDDDDDMDMMDDDMDDDMDDMDDDMMDMDDMMDMDDMDMMMDDMMDDDDMDMMMMDMMDDDMMMDMMDDMMDDDDDDDMDDDDDDMDDDMDDDDDMDMMMMDDMMDDDMMDDMDMMMMDMDMDMMMDMDMMDDMDDDMMDMDDMMDMDDDMMDMMDDMMMMDDMDMDMMDDDDMDMDDDMMDMDMDDDMMMMDDDDDDMDDMMDMMDMDDDDMDDDMDDDDDMMMDDDDDDDMMDMDDDDDMDDMDDMDDDDDMMDMDDDMDDMDMDDDDDDMMDMDMMDDDMDDMMDMDMDDDDDDMDDDMMMMDDDDDDMMMMDDDMDMDDMMDDMMMDMDDMDDDMDDMMDDMMMDMDMMMDDDMMDDDMDMDDDDMMMDDDMDDMDDMDDMDMMDMMDDDMMMDMDDDDDDDDDDDDDDDMDMDDDDDDMMMDMDMDDDMMDMDDDDDDDDDMDMDMDDDMMDDDDDDMDDDDMDDDMMDMDMDDMMDMDMMMDDMMDDDDDDDDDDMDDDMDMDDMDDMMDDMDDMDMMMMMDDMMMDMDDDDMMMMMMMDDDDMDDDDMDDMDDDDDDDMMMMDMDDMDDDDDMMDMDDDDMDMDDDMMMDMMDMDMDDMDMDDMMDMDMDMDMMDDDMDDDDMMMDMDDDMDDDDDDMDMMMDDDDMDMMDDDMDDDMDMMMMMDDMMMMDMMMMDDMDDMMMDDMDDDDDMDDMDMDDDMDDDMDDMDDDMDDMDDDDDMMMMDDDDMMDMDMMDDDDMMMDMDMDDMDMDMDMDMMMMDDDDMDMDDDMMMMMMMMDDDDDMDDDDDDDMMDMMMMMDDDMMMDDMMMMDMDDDMMDDDDMDDDDMDDMMDDDMDDDMDM"

  21. 20

    Returns: "MMDDMMMMMMMMMMMDMMMMMMDMDMDDDMDDMMMDMDDMMMMMMMDMDMDDDDMMDMMMMMDMMMMDMMMMDMMMMMDMMMMMDMDDDDDMMDMMMMMDDMMDMDMMMMMDDMDMDDMDMMMDMMDMMDDMDDDMMDMDMMDMMMMMMMMMDMMMDMDDDDMMDMDMMMMMMMMMMDMMMMDDMDMDDMMDMMMMDMMDMDDMDMMDMMDMMDMDMDDMMMMDMMDMDMMDDDDMDMMMMMMMMMMMDMMMMDMDDDMMDDMMMDMDDDDDMDMMMMDDMDMMDDMDDDMDMMDDMMMDMMMDMMMDDDMMDMMDDDDMMDDMDMMMMDMMMMMMDDDMMMMDDMMDMMMMDMMMDDMDDMMMDMMDMDMMMDMDMDMDDMDDDMMMDDDMDMMMMMDDDMDMDMDMDMMMMMDDDMMMDMMDDDDDDMDDDDMMMMMMDMDMMMDMMMDMMDDDMMDDMMMMDMMDDMMMDMMDDMMMMDDDMDMDDMMMDDMMDMMDMMDDMMDDDDMDMMMMDMMMMDMMDDDMMMDMMDDDDDDMMMMDDDDDMMMDMMMDMMMMMDMMDMMMDMDDDMDMDDMMDDMDMDDDMMDMMMMMDDMDMDDMMMMDMDDMMDDMMDMDMDMMDDMMDDDMMDDMMDDMMMMMDMMMMMDMMDDMDMDMMDMDDMMMMMDDMDMDMMDMMDMDMMMMDDMMMMMDDMMMMMMMDMDMDMDDDMMDDDDMMMMDMMMDMMDMMDDDMMMMDDMMMDMMDDMDDMMDDMMDDMMMMDMMDDMDDDDMDMMDDMMMMMMDDMDDMMDDDMDDMDMMDMMMMMMMDDMDDDMDDMMMMMMDMDDDDMMDDMMMMMDMDMDMMMDDMDMMMDDDDMMMDDDMMMDMDMDDMMMDDDMMMMDDMMDMMDMDMMDMDDMDMMMMMDDDDMDMDDMMMDDDMMMDMMDMDDDMDMDMDMMMMDDDDMDMMDMMMMDDDMMDMDDDMMDMMMMMDMDDDMDMDDMDDMDDDMDDMDDD"


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: