<?xml version="1.0" encoding="UTF-8"?> 
<fps version="1.1" url="http://code.google.com/p/freeproblemset/">
	<generator name="HUSTOJ" url="http://code.google.com/p/hustoj/"/>
	<item>
<title><![CDATA[Rank and File]]></title>
<time_limit><![CDATA[1]]></time_limit>
<memory_limit><![CDATA[128]]></memory_limit>

<img><src><![CDATA[http://acm.hnu.cn/online/images/11648_1.png]]></src><base64><![CDATA[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]]></base64></img><img><src><![CDATA[http://acm.hnu.cn/online/images/11648_2.png]]></src><base64><![CDATA[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]]></base64></img><img><src><![CDATA[http://acm.hnu.cn/online/images/11648_3.png]]></src><base64><![CDATA[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]]></base64></img><img><src><![CDATA[http://acm.hnu.cn/online/images/11648_4.png]]></src><base64><![CDATA[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]]></base64></img><img><src><![CDATA[http://acm.hnu.cn/online/images/11648_5.png]]></src><base64><![CDATA[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]]></base64></img><img><src><![CDATA[http://acm.hnu.cn/online/images/11648_6.png]]></src><base64><![CDATA[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]]></base64></img><img><src><![CDATA[http://acm.hnu.cn/online/images/11648_7.png]]></src><base64><![CDATA[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]]></base64></img><img><src><![CDATA[http://acm.hnu.cn/online/images/11648_8.png]]></src><base64><![CDATA[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]]></base64></img><img><src><![CDATA[http://acm.hnu.cn/online/images/11648_9.png]]></src><base64><![CDATA[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]]></base64></img><description><![CDATA[<i>Note: The chess piece images below were created by Colin M.L. Burnett and are used under the auspices of the BSD license, the text of which follows the problem statement.</i>
<p>Programs and algorithms for playing the game of chess have been around as long as computers themselves, with the first chess playing program being developed in the 50's by Alan Turing. Computer chess has come a long way since then, and in 1997 IBM's Deep Blue defeated chess grandmaster Garry Kasparov. One thing all these chess programs have in common though is a need to determine when the winning move, or <i>checkmate</i>, is reached. Your goal for this problem is to implement an algorithm such that, given the current layout of the chessboard, it will detect if a checkmate has occurred during that turn.</p>
<p>Chess is played on a board divided into a 8x8 grid of 64 squares. On a real chessboard, the 64 squares have alternating light and dark colors. For this problem the individual square colors are irrelevant and the entire board is simply treated as a uniform 8x8 grid.</p>
<p>The game is played by two opposing sides, white and black, with each side controlling up to six kinds of pieces: a <i>king</i>, <i>queen</i>, <i>rook</i>, <i>bishop</i>, <i>knight</i>, and one or more <i>pawn</i>s. For simplicity's sake, however, this problem will only consider the first five and not make any use of the pawn chess piece. The two players take turns moving one piece at a time on every turn. It is up to each player to decide which piece they wish to move on their turn, but it is not possible for a player to &quot;skip&quot; or &quot;pass&quot;; each player <b>must</b> move one of their pieces in some fashion.</p>
<p>Each kind of chess piece moves in a distinct way as explained in the list below, and <i>Figure 1</i> gives an example using an X to show each square that a chess piece can move to.</p>
<ul class="example">
    <li><i>Rook</i>: The rook moves in a straight line by any number of squares in any of the four cardinal (horizontal and vertical) directions.</li>
    <li><i>Bishop</i>: The bishop moves in a line by any number of squares in any of the four diagonal directions.</li>
    <li><i>Queen</i>: The queen can move in a line by any number of squares in any of the eight cardinal and diagonal directions. As such, it is considered to be the most powerful piece in the game.</li>
    <li><i>Knight</i>: The knight always moves by &quot;jumping&quot; two squares in one cardinal direction and one square in a direction perpendicular to the first. There are 8 possible squares that a knight can move to from a given position, and these are shown in the figure below.</li>
    <li><i>King</i>: The king can move in any of the eight cardinal and diagonal directions but by one square only. Put another way, the king can only move into the eight immediately adjacent squares. As such, this makes the king one of the weakest pieces on the board.</li>
</ul>
<table border="0" align="center" class="example">
    <tbody>
        <tr>
            <td><img src="http://acm.hnu.cn/online/images/11648_1.png" alt="" /> <br />
            <i>Rook</i></td>
            <td><img src="http://acm.hnu.cn/online/images/11648_2.png" alt="" /> <br />
            <i>Bishop</i></td>
            <td><img src="http://acm.hnu.cn/online/images/11648_3.png" alt="" /> <br />
            <i>Queen</i></td>
            <td><img src="http://acm.hnu.cn/online/images/11648_4.png" alt="" /> <br />
            <i>Knight</i></td>
            <td><img src="http://acm.hnu.cn/online/images/11648_5.png" alt="" /> <br />
            <i>King</i></td>
        </tr>
    </tbody>
    <caption> <b>Figure 1:</b> Valid moves for each kind of chess piece </caption>
</table>
<p>On every turn, a chess piece may be moved either into a vacant square or into a square already occupied by an opposing piece. In the latter case, the opposing chess piece is said to be</p>
<i>captured</i>
<p>and is permanently removed from the game. However, a chess piece</p>
<b>may not</b>
<p>move into a square already occupied by another friendly piece, because each square can be occupied by at most one piece at a time. Most chess pieces move by &quot;sliding&quot; across vacant squares on the board. In other words, any other chess piece (be it friendly or foe) in the path of the moving piece will block any further movement of that piece. The only exception to this rule is the knight which &quot;jumps&quot; directly to its final destination square, and therefore its movement cannot be blocked  by any surrounding pieces between it and the destination square. See</p>
<i>Figure 2</i>
<p>for an example: image (a) shows a white rook's movement blocked by two other pieces, and image (b) shows the same white rook capturing a black bishop (the rook's previous position before the capture is shown as a white outline).</p>
<p>
<table border="0" align="center" class="example">
    <tbody>
        <tr>
            <td><img src="http://acm.hnu.cn/online/images/11648_6.png" alt="" /> <br />
            <i>(a)</i></td>
            <td><img src="http://acm.hnu.cn/online/images/11648_7.png" alt="" /> <br />
            <i>(b)</i></td>
        </tr>
    </tbody>
    <caption> <b>Figure 2:</b> (a) rook's movement blocked by other pieces; (b) rook capturing the black bishop </caption>
</table>
Although the king may be one of the weakest pieces on the board, it is also the most important. A king cannot be captured directly by another piece but it can be threatened. When the king is threatened, or <i>checked</i>, it means that on the <b>next</b> turn, the opposing side would be able to capture the king. Putting a king in check forces the checked side to defend their king by moving the king out of harm's way, blocking the threat with another piece, or capturing the threatening piece. If the checked player has no valid move that they can make to protect the king, then the king is in fact <i>checkmated</i>, and that player has lost the game. Also note that a player may never put their own king in check. <i>Figure 3</i> shows the difference between a check and checkmate. In image (a), the imminent capture of the white king can still be avoided by either moving the king out of the way or by capturing the black queen. Image (b) shows an example of checkmate, where no valid moves exist for the white side that would eliminate the threat to the king.</p>
<p>
<table border="0" align="center" class="example">
    <tbody>
        <tr>
            <td><img src="http://acm.hnu.cn/online/images/11648_8.png" alt="" /> <br />
            <i>Check</i></td>
            <td><img src="http://acm.hnu.cn/online/images/11648_9.png" alt="" /> <br />
            <i>Checkmate</i></td>
        </tr>
    </tbody>
    <caption> <b>Figure 3:</b> Example of white king in (a) check and (b) checkmate </caption>
</table>
The rules laid out above are the only ones that should be considered for the purposes of this problem. Any other special rules or moves present in a real game of chess, such as <i>castling</i>, are <b>not</b> considered valid in the context of this problem. For the chessboard layout in each data set, you may assume it will contain exactly one white king and exactly one black king, although either side may have any number of rooks, bishops, queens, and knights.</p>]]></description>
<input><![CDATA[<p>Input to this problem will begin with a line containing a single integer <i>D</i> (1 &le; <i>D</i> &le; 100) indicating the number of data sets. Each data set consists of the following components:</p>
<ul>
    <li>A line containing a single lower case &quot;<tt>w</tt>&quot; or upper case &quot;<tt>B</tt>&quot; indicating which side is to be analyzed for a check or checkmate (and which side is about to move on this turn), with &quot;<tt>w</tt>&quot; specifying the white side and &quot;<tt>B</tt>&quot; specifying black.</li>
    <li>A series of eight lines, with each line containing eight characters. These lines specify the state of the chessboard to be analyzed in this data set. The characters used on these eight lines are:
    <ul>
        <li>A &quot;<tt>.</tt>&quot; (period) to indicate an empty square</li>
        <li>The lower case letters &quot;<tt>r</tt>&quot;, &quot;<tt>b</tt>&quot;, &quot;<tt>q</tt>&quot;, &quot;<tt>n</tt>&quot;, and &quot;<tt>k</tt>&quot;, to respectively indicate the <b>white</b> side's rook, bishop, queen, knight, and king pieces</li>
        <li>The capital letters &quot;<tt>R</tt>&quot;, &quot;<tt>B</tt>&quot;, &quot;<tt>Q</tt>&quot;, &quot;<tt>N</tt>&quot;, and &quot;<tt>K</tt>&quot;, to indicate the same respective pieces but for the <b>black</b> side</li>
    </ul>
    </li>
</ul>
<p></p>]]></input> 
<output><![CDATA[<p>For each data set in the input, print a single line.  Begin the line with either &quot;<tt>WHITE IS </tt>&quot; or &quot;<tt>BLACK IS </tt>&quot; depending on which side was analyzed in the data set. Finally, complete the line with &quot;<tt>CHECKED</tt>&quot; or &quot;<tt>CHECKMATED</tt>&quot; if either is detected, or complete the line with &quot;<tt>SAFE</tt>&quot; if neither condition holds.  If both check and checkmate are detected, print &quot;<tt>CHECKMATED</tt>&quot;.</p>]]></output>
<sample_input><![CDATA[3
w
........
........
........
.Qk.K...
........
........
........
........
B
........
........
........
.qK.k...
........
........
........
.r......
w
........
..k.....
........
.Q..K...
........
........
........
........
]]></sample_input>
<sample_output><![CDATA[WHITE IS CHECKED
BLACK IS CHECKMATED
WHITE IS SAFE
]]></sample_output>
<test_input><![CDATA[27
w
........
........
........
.Qk.K...
........
........
........
........
B
........
........
........
.qK.k...
........
........
........
.r......
w
........
..k.....
........
.Q..K...
........
........
........
........
w
K.......
........
..B.....
........
.Q..k...
........
..n...Q.
......N.
B
........
........
..K.....
........
.Q..k...
........
...n..Q.
......N.
B
r.r.....
.K.....q
........
.......r
....N...
........
........
.q..R.k.
B
K....Q..
.b.Q....
......Q.
Q.......
.......Q
.Q......
....Q...
..Q....k
w
....R...
........
R.......
...k....
.......R
........
........
..R....K
w
...N....
.N...N..
........
N..k..N.
........
.N...N..
...N....
.......K
w
....QQ..
........
........
...k....
Q.......
........
........
..Q....K
w
.B...B..
...B....
........
...k....
........
...B....
........
B.....BK
B
..q.....
........
.......q
...K..n.
.......q
.....n..
........
.......k
w
....R...
........
.N......
...k....
.......R
........
.r......
..R....K
w
...N....
.N...N..
.NqqqN..
N.qkq.N.
.NqqqN..
.N...N..
...N....
.......K
w
....B...
........
........
B...k..B
........
....B...
........
.......K
w
....N...
........
........
N...k..N
........
....N...
........
.......K
B
.n.....n
........
........
....K...
...n....
......n.
........
.......k
B
.r.....r
........
........
....K...
...r....
......r.
........
.......k
B
........
...b.b..
..b...b.
....K...
..b...b.
...b.b..
........
.......k
B
..r.r...
........
r.......
...K....
r.......
........
.R.r....
.......k
B
..r.r...
........
r.......
...K....
r.......
........
...r....
....B..k
B
..r.r...
........
r.......
...K....
r.......
.N......
...r....
.......k
B
..r.r...
........
r.......
...K..Q.
r.......
........
...r....
.......k
B
qqqqqqqq
qqqqqqqq
qqqqqqqq
qqqKqqqq
qqqqqqqq
qqqqqqqq
qqqqqqqq
qqqqqqqk
B
nnnnnnnn
nnnnnnnn
nnnnnnnn
nnnKnnnn
nnnnnnnn
nnnnnnnn
nnnnnnnn
nnnnnnnk
B
........
........
........
...K....
........
........
........
.......k
B
QQQQQQQ.
QQQQQQQ.
QQQQQQQ.
QQQKQQQ.
QQQQ.QQ.
QQQQQ.Q.
QQQQQQ..
.......k
]]></test_input>
<test_output><![CDATA[WHITE IS CHECKED
BLACK IS CHECKMATED
WHITE IS SAFE
WHITE IS CHECKED
BLACK IS SAFE
BLACK IS CHECKMATED
BLACK IS CHECKED
WHITE IS CHECKMATED
WHITE IS CHECKMATED
WHITE IS CHECKMATED
WHITE IS CHECKMATED
BLACK IS CHECKMATED
WHITE IS CHECKED
WHITE IS CHECKMATED
WHITE IS SAFE
WHITE IS SAFE
BLACK IS SAFE
BLACK IS SAFE
BLACK IS SAFE
BLACK IS CHECKED
BLACK IS CHECKED
BLACK IS CHECKED
BLACK IS CHECKED
BLACK IS CHECKMATED
BLACK IS CHECKMATED
BLACK IS SAFE
BLACK IS SAFE
]]></test_output>
<hint><![CDATA[]]></hint>
<source><![CDATA[2008 ACM ICPC South Central USA Regional Programming Contest]]></source>
<solution language="C++"><![CDATA[#include <iostream>
#include <string.h>

using namespace std;

/* SANITY CHECK: assertion macro for verifying input data and internal state */
#define ASSERT(e) { if(!(e)) { cerr << #e << endl; throw; } }

/* List of ASCII characters representing chess pieces for side 0 and side 1 */
const string PIECE[2] = { "kqbrn", "KQBRN" };

/* Enumerated type indexing either side's PIECE[0] or PIECE[1] string */
enum { KING, QUEEN, BISHOP, ROOK, KNIGHT };

/* Structure encoding possible movement types for each piece */
typedef struct {
    bool free;     /* True for rook/bishop/queen which move multiple spaces */
    int count;     /* Number of valid entries in the following dir[] array */
    int dir[8][2]; /* Array of (row, col) allowed movement directions */
} movement_t;

/*
 * Movement definitions for each piece. These are in the same order as the
 * PIECE strings, so they can be indexed by the enumerated type. By using a
 * data structure like this, the movement definitions can be shared by both
 * the ischecked() and ismate() functions.
 */
const movement_t MOVEMENT[] = {
  /* KING */
  { false, 8, { {-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1} } },
  
  /* QUEEN */
  { true, 8,  { {-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1} } },

  /* BISHOP */
  { true, 4,  { {-1,-1},{-1,1},{1,-1},{1,1} } },

  /* ROOK */
  { true, 4,  { {-1,0},{0,-1},{0,1},{1,0} } },

  /* KNIGHT */
  { false, 8, { {-2,-1},{-2,1},{-1,-2},{-1,2},{2,-1},{2,1},{1,-2},{1,2} } }
};

/* Array holding the chess board layout for the current data set */
char board[8][8];

/* Either 0 or 1 depending on which side gets analyzed for current data set */
int side;

/* Row and column containing the king piece to be analyzed in this data set */
int kingrow = -1, kingcol = -1;

/* Return true if coordinate pair (row, col) is within chess board area */
inline bool isinside(int row, int col)
{
    return row >= 0 && row < 8 && col >= 0 && col < 8;
}

#ifdef STEP
/* DEBUG ONLY: Print chess board to stderr along with row and column headings */
void dump(void)
{
  cerr << " 01234567" << endl;
  
  for(int row = 0; row < 8; row++) {  
      cerr << row;
      
      for(int col = 0; col < 8; col++) {
          cerr << board[row][col];
      }
      
      cerr << endl;
  }
}
#endif

/*
 * Detect if this side's current king is in check by searching all the possible
 * locations around the king for pieces that could possibly threaten the king.
 * Starting with the king's current position (kingrow, kingcol) seach all the
 * positions around him from which an enemy piece could threaten based on the
 * movement directions defined in the MOVEMENT array. If an enemy piece is
 * found which can threaten the king in the specified movement direction, then
 * return true since the king is checked. If any other piece (from either side)
 * is found along the specified movement direction found, then return false
 * since this other piece will block any enemy pieces on the other side from
 * possibly threatening the king. Likewise return false if no pieces are found
 * along any of the directions that the king could be threatened from.
 */
bool ischecked(void)
{
    bool checked = false;

#ifdef STEP
    dump();
#endif

    /* Check for each enemy piece that could threaten the king */
    for(int piece = 0; piece < 5; piece++) {
        const char ascii = PIECE[!side][piece];
        const movement_t &move = MOVEMENT[piece];

        /* Search in each direction from which this piece could threaten */
        for(int dir = 0; dir < move.count; dir++) {
            int row = kingrow, col = kingcol;

            do {
                /* Advance search location by current direction */
                row += move.dir[dir][0];
                col += move.dir[dir][1];

                /* Abort this direction if location is past board edge */
                if(!isinside(row, col)) {
                    break;
                }

                /* Detect if the threatening piece was found */
                if(board[row][col] == ascii) {
#ifdef STEP
                    cerr << ascii << " @ " << row << "," << col << endl;
#endif
                    checked = true;
                    break;
                }

                /* Other pieces block further threats from this direction */
                if(board[row][col] != '.') {
                    break;
                }

            /*
             * A rook, bishop, or queen can move multiple spaces in the same
             * direction so keep searching until either the edge of the board
             * is reached, the threatening piece was found, or some other piece
             * was found that blocks any further threats from that direction.
             */
            } while(move.free);
        }
    }

    return checked;
}

bool ismate(void)
{
    bool mate = true;

    /* Search the board for a piece to try moving */
    for(int row = 0; row < 8; row++) {
        for(int col = 0; col < 8; col++) {
            int piece = PIECE[side].find(board[row][col]);
            
            /* If our side's piece has been found try moving it around */
            if(piece != -1) {
                const char ascii = PIECE[side][piece];
                const movement_t &move = MOVEMENT[piece];

                /* Try moving in all directions allowed by this piece */
                for(int dir = 0; dir < move.count; dir++) {
                    int newrow = row, newcol = col;
                    char oldpiece;

                    do {
                        /* Advance search location by current direction */
                        newrow += move.dir[dir][0];
                        newcol += move.dir[dir][1];

                        /* Abort this direction if location past board edge */
                        if(!isinside(newrow, newcol)) {
                            break;
                        }

                        /* Other friendly pieces block further movement */
                        if(PIECE[side].find(board[newrow][newcol]) != -1) {
                            break;
                        }
                        
                        /* Enemy kings block movement; they can't be captured */
                        if(board[newrow][newcol] == PIECE[!side][KING]) {
                            break;
                        }

                        /*
                         * Move piece to new location; if an enemy piece already
                         * occupies the new location, it will be captured (i.e.
                         * removed from the board) so a temporary copy of the
                         * captured enemy piece is saved in "oldpiece".
                         */
                        oldpiece = board[newrow][newcol];
                        board[newrow][newcol] = ascii;
                        board[row][col] = '.';
                        
                        /* If the king was moved, update his coordinates */
                        if(piece == KING) {
                            kingrow = newrow;
                            kingcol = newcol;
                        }
#ifdef STEP
                        cerr << endl << ascii << " @ " << row << "," << col;
                        cerr << " --> " << newrow << "," << newcol << endl;
#endif
                        /* Determine if the king is in check after this move */
                        mate &= ischecked();

                        /*
                         * Restore the piece to its previous location and
                         * restore any enemy piece that was captured by this
                         * piece.
                         */
                        board[newrow][newcol] = oldpiece;
                        board[row][col] = ascii;

                        /* If the king was moved, restore his coordinates */
                        if(piece == KING) {
                            kingrow = row;
                            kingcol = col;
                        }

                    /*
                     * A rook, bishop, or queen can move multiple spaces in the
                     * same direction until either the edge of the board is
                     * reached or an enemy piece was captured (i.e. oldpiece is
                     * not an empty '.' square).
                     */
                    } while(move.free && oldpiece == '.');
                }
            }
        }
    }
    
    return mate;
}

/* Main body of program */
void process(void)
{
    int data_num, data_idx;
    
    /* Read how many data sets to process */
    cin >> data_num;
    
    /* Process each data set separately */
    for(data_idx = 0; data_idx < data_num; data_idx++) {
        bool check = false, mate = false;
            
        /* Read in which side (white or black) to analyze */
        char c;
        cin >> c;
        ASSERT(c == 'w' || c == 'B');
        side = (c == 'w') ? 0 : 1;

        /* Reset the king's cooridante position for each data set */
        kingrow = -1;
        kingcol = -1;
        
        /* Read in the chess board layout */
        for(int row = 0; row < 8; row++) {
            for(int col = 0; col < 8; col++) {
                char &c = board[row][col];            
                cin >> c;
                
                /* Check for location of the king for the side we're analyzing */
                if(c == PIECE[side][KING]) {
                
                    /* SANITY CHECK: Make sure only one king was found */
                    ASSERT(kingrow == -1 && kingcol == -1);
                    
                    kingrow = row;
                    kingcol = col;
                }
            }
        }
        
        /* SANITY CHECK: Make sure that a king was found */
        ASSERT(kingrow != -1 && kingcol != -1);

        /* Detect a check and checkmate condition */
        check = ischecked();
        mate = ismate();

        /* Print the result */
        cout << (side ? "BLACK" : "WHITE") << " IS ";
        cout << (mate ? "CHECKMATED" : (check ? "CHECKED" : "SAFE")) << endl;
#ifdef STEP
        cerr << (side ? "BLACK" : "WHITE") << " IS ";
        cerr << (mate ? "CHECKMATED" : (check ? "CHECKED" : "SAFE")) << endl;
#endif
    }
}

/* Run program and print out any exceptions that occur */
int main(void)
{
    /* Throw exceptions on failed data extraction in >> operator */
    cin.exceptions(ios::failbit);
    
    /* Run main body of code */
    try {
        process();
    }
    
    /* Catch unexpected EOF or bad input data */
    catch(ios::failure const &e) {
        cerr << "Unexpected EOF or data type mismatch on input" << endl;
    }

    return 0;
}

]]></solution>
<![CDATA[]]>
</item>
<item>
<title><![CDATA[The Extent of the Problem]]></title>
<time_limit><![CDATA[10]]></time_limit>
<memory_limit><![CDATA[128]]></memory_limit>

<description><![CDATA[<p>Files on modern filesystems are not always stored contiguously.  Instead, they are broken up into chunks (called</p>
<p><i>extents</i></p>
<p>), each of which may be located almost anywhere on the underlying disk.  Each extent takes up one or more contiguous</p>
<p><i>blocks</i></p>
<p>on the disk, which represent the underlying physical disk structure.  Files may not share blocks or extents between themselves, although there may be (and hopefully are) blocks not currently in use on the filesystem.</p>
<p>Despite all of the advances in modern disk technology, this disparate layout still makes for slower access than when all of a file's blocks are in order and adjacent (and therefore occupying a single extent). Because of this, many modern filesystems support <i>defragmentation</i>: the reorganizing of files on the disk so that the blocks of any given file are in order and adjacent.</p>
<p>With RAD's Awesome Dynamic Filesystem (commonly referred to as <b>RADfs</b>), a file can occupy any number of extents, each of which consists of at least two adjacent blocks.  The first block in an extent holds metadata about that extent; the rest contain some portion of the file.  Consider this simple representation of the extents and blocks occupied by a file:</p>
<p></p>
<pre>
RADfs.doc: 57-58,102-114,23-47</pre>
<p>The file <tt>RADfs.doc</tt> currently occupies 40 blocks on the disk, even though the file itself is only 37 blocks in size.  The smallest on-disk size that it could have is 38 blocks (37 plus a single metadata block), and that can only happen if the entire file is in a single extent.  One potential single-extent representation of the file is:</p>
<p></p>
<pre>
RADfs.doc: 115-152</pre>
<p>Here, the single metadata block (115) is followed by the 37 data blocks in a single extent.</p>
<p>The developers of RADfs have also developed the RADical Defragmentation Daemon, or RADDD.  RADDD works with a simple two-step algorithm; despite its simplicity, it still manages to significantly reduce the number of extents consumed by files, given enough free space on the disk.</p>
<p>A RADDD pass works as follows:</p>
<ul>
    <li>First Step (&quot;to the back&quot;):
    <ul>
        <li>For every file on the filesystem that hasn't been run through this           step on this pass, sorted in <b>ascending</b> order by the           <b>first</b> block it occupies on the disk:
        <ul>
            <li>Find the series of adjacent unused blocks nearest the               <b>end</b> of the disk that can hold the file plus a single               metadata block</li>
            <li>If such a series exists:
            <ul>
                <li>Move the file to those blocks</li>
                <li>Mark the original blocks as unused</li>
            </ul>
            </li>
            <li>Else do nothing to the file</li>
        </ul>
        </li>
    </ul>
    </li>
    <li>Second Step (&quot;to the front&quot;):
    <ul>
        <li>For every file on the filesystem that hasn't been run through this           step on this pass, sorted in <b>descending</b> order by the           <b>last</b> block it occupies on the disk:
        <ul>
            <li>Find the series of adjacent unused blocks nearest the               <b>beginning</b> of the disk that can hold the file plus a               single metadata block</li>
            <li>If such a series exists:
            <ul>
                <li>Move the file to those blocks</li>
                <li>Mark the original blocks as unused</li>
            </ul>
            </li>
            <li>Else do nothing to the file</li>
        </ul>
        </li>
    </ul>
    </li>
</ul>
<p>After one pass on a filesystem with some free space, some files have hopefully been reduced to a single extent.  Multiple passes can often defragment the filesystem even further.</p>
<p>Of course, it's not that simple; some files simply cannot be moved, perhaps due to being in use at the time of the run.  These are marked on the filesystem as <i>immobile</i>, and are ignored by RADDD.</p>
<p>Given the size of a disk, the current layout of files on the disk, and a number of passes of RADDD to run, can you determine the final filesystem layout?</p>]]></description>
<input><![CDATA[<p>Input to this problem will begin with a line containing a single integer</p>
<p><i>N</i></p>
<p>(1 &le;</p>
<p><i>N</i></p>
<p>&le; 100) indicating the number of data sets. Each data set consists of the following components:</p>
<ul>
    <li>A line containing a single integer <i>S</i> (2 &le; <i>S</i> &le; 100000) indicating the number of blocks on the particular filesystem;</li>
    <li>A line containing a single integer <i>C</i> (1 &le; <i>C</i> &le; 100) indicating the number of files on the filesystem;</li>
    <li><i>C</i> lines representing the files on the filesystem, in the format &quot;<tt><i>NAME</i> <i>TYPE</i> <i>E</i> <i>A</i>-<i>B</i>[ <i>X</i>-<i>Y</i>[ ...]]</tt>&quot;, where:
    <ul>
        <li><i>NAME</i> is a unique (to the dataset) identifier, consisting of at least 1 and     no more than 16 lowercase letters;</li>
        <li><i>TYPE</i> is &quot;<tt>I</tt>&quot; if the file is immobile, or &quot;<tt>M</tt>&quot;     otherwise;</li>
        <li><i>E</i> is an integer (1 &le; <i>E</i> &le; 20) representing the number of     extents the file occupies;</li>
        <li><i>A</i> and <i>B</i> (1 &le; <i>A</i>, <i>B</i> &le; <i>S</i>) are, respectively, the first and last blocks of the      first extent the file occupies;</li>
        <li><i>X</i> and <i>Y</i> (1 &le; <i>X</i>, <i>Y</i> &le; <i>S</i>) are, if present, the first and last blocks of the      second extent the file occupies;</li>
        <li>and so on;</li>
    </ul>
    </li>
    <li>A line containing a single integer <i>P</i> (1 &le; <i>P</i> &le; 100) indicating the number of passes of RADDD that should be run.</li>
</ul>
<p></p>]]></input> 
<output><![CDATA[<p>For each data set in the output, output the heading &quot;<tt>DATA SET #<i>k</i></tt>&quot; where <i>k</i> is 1 for the first data set, 2 for the second, and so on.  On the next <i>C</i> lines, output the locations of the files on the disk after the RADDD passes in ascending order by the first block occupied on the disk. The format should be identical to the representation in the input; if a file occupies multiple extents, the output should be sorted in ascending order by the first block in each extent.</p>]]></output>
<sample_input><![CDATA[2
152
1
radfsdoc M 3 57-58 102-114 23-47
1
100
4
swapfile I 3 5-10 80-95 25-50
smallfile M 2 1-4 11-14
bigfile M 2 15-24 51-60
tinyfile M 1 61-64
2
]]></sample_input>
<sample_output><![CDATA[DATA SET #1
radfsdoc M 1 1-38
DATA SET #2
tinyfile M 1 1-4
swapfile I 3 5-10 25-50 80-95
bigfile M 2 15-24 51-60
smallfile M 1 61-67
]]></sample_output>
<test_input><![CDATA[8
152
1
radfsdoc M 3 57-58 102-114 23-47
1
100
4
swapfile I 3 5-10 80-95 25-50
smallfile M 2 1-4 11-14
bigfile M 2 15-24 51-60
tinyfile M 1 61-64
2
100000
4
swapfile I 3 5-10 80-95 25-50
smallfile M 2 1-4 11-14
bigfile M 2 15-24 51-60
tinyfile M 1 61-64
100
100000
1
fileaaa M 20 1-2 3-4 5-6 7-8 9-10 11-12 13-14 15-16 17-18 19-20 21-22 23-24 25-26 27-28 29-30 31-32 33-34 35-36 37-38 39-40
100
100000
100
dyhofjlnebhtukdr M 20 2855-2867 28193-28209 68823-68834 39350-39360 45688-45697 86707-86718 93692-93698 99651-99665 26368-26376 63402-63427 54700-54711 74343-74358 88752-88765 30777-30781 26148-26160 31467-31488 35906-35918 94568-94587 24616-24624 49201-49224
rwprylskdzczvmkj M 20 83734-83752 36822-36846 39912-39914 42670-42695 56931-56933 53302-53315 95275-95300 57580-57584 46617-46628 60924-60939 33149-33152 42610-42618 10801-10821 94606-94615 67830-67834 76279-76284 23433-23455 5543-5561 20260-20274 17324-17333
wpuqzlmldqcfnfmb I 20 35971-35982 12657-12677 27531-27534 30751-30755 27877-27895 34925-34939 62296-62306 23929-23932 51814-51838 49070-49076 58656-58675 37627-37629 24315-24332 52090-52109 3479-3502 35331-35353 10751-10770 81389-81407 17425-17433 32653-32665
ibzvjuijhxnsamre M 20 82341-82366 86762-86767 12268-12291 42823-42836 45925-45944 76865-76878 33911-33922 8488-8495 84371-84375 49978-49985 2673-2689 19708-19718 40009-40034 79358-79374 93396-93408 99215-99223 14204-14224 36407-36420 60949-60951 48443-48449
ezpfrbtphwrfrsla M 20 10495-10505 39381-39385 19897-19902 99616-99631 71871-71888 25850-25874 3128-3143 1559-1581 30907-30910 2461-2482 51862-51874 55890-55894 89435-89441 65803-65818 51554-51556 2242-2252 46068-46080 90055-90062 89984-90008 5295-5317
ccazuvjxjzakgvqk M 20 90228-90249 38723-38725 15956-15976 47869-47877 92959-92977 80220-80240 71136-71153 48998-49010 87088-87095 36970-36973 83220-83241 34686-34710 50839-50844 76097-76114 19541-19564 59558-59578 29531-29541 98756-98767 21124-21132 60401-60419
olbstohtzjimbmnr M 20 52897-52921 61619-61631 16587-16599 2150-2152 34962-34966 41150-41158 58061-58072 17129-17153 46517-46538 85008-85010 89790-89814 52115-52135 44979-44991 64404-64414 69004-69018 25948-25951 13068-13077 74162-74187 20722-20729 64172-64196
glllycvksxmqrkxk M 20 26477-26483 90555-90579 78239-78263 87403-87418 45180-45196 34460-34474 3685-3704 4775-4779 85516-85531 44454-44461 37775-37797 35106-35118 22435-22460 42231-42237 83155-83174 99681-99688 55498-55500 95806-95817 92771-92775 75745-75768
vivnstvxlqvrsnau M 20 41455-41461 15331-15339 25049-25051 64428-64435 87981-88005 49230-49243 32425-32450 24271-24276 92595-92616 4214-4226 35456-35464 53982-54002 59918-59931 62002-62016 70148-70168 89623-89633 12202-12221 44367-44373 94182-94205 64384-64402
atplbvnyknqjgeyt M 20 75195-75220 51081-51091 48101-48113 10335-10345 11237-11256 61204-61212 27775-27791 7543-7548 2593-2618 64470-64487 42816-42818 5584-5590 45068-45076 93727-93738 60146-60149 11502-11508 29688-29704 41000-41012 93237-93252 88632-88645
puwuavkqmmdepqbl M 20 40072-40074 63959-63982 93528-93534 93299-93304 55377-55401 41296-41304 46223-46233 5688-5707 83360-83371 6885-6910 91559-91579 60079-60103 74966-74974 38737-38755 43614-43638 37096-37112 65395-65415 29853-29857 47064-47080 58090-58105
krajsaavjtmeetui M 20 32845-32869 97559-97578 36872-36881 28319-28344 44756-44762 13373-13388 74256-74281 14822-14825 23530-23555 19649-19660 19410-19412 27150-27155 77069-77085 78818-78827 77016-77031 55002-55011 75876-75887 20795-20819 80134-80146 46116-46126
nflhdpjrekmvkkrb M 20 48140-48145 9763-9771 70017-70021 98113-98131 30116-30141 75113-75123 93219-93232 79692-79698 31731-31753 12995-13018 10599-10623 17390-17395 74542-74560 73956-73959 13620-13645 23895-23917 87182-87207 38256-38261 83775-83796 4367-4386
bakrdcmedpjvdmla M 20 42033-42058 46781-46800 36978-36987 30479-30503 22135-22148 98075-98082 53636-53650 89373-89378 69335-69339 95429-95453 28290-28296 53871-53876 80293-80297 23225-23234 94998-95010 62546-62570 6449-6461 18583-18594 86780-86783 85839-85862
zepgtyasbhsglyxt M 20 78231-78238 78498-78519 75409-75424 38568-38579 50596-50612 46334-46342 45980-45984 18248-18273 56657-56676 76240-76261 53722-53729 6940-6961 82827-82835 31765-31784 49725-49736 62885-62893 69028-69039 58732-58754 71443-71451 43222-43231
exyniucnayxebzmk M 20 79943-79946 11671-11688 60106-60119 22476-22483 48560-48568 5951-5969 22617-22625 43689-43703 71761-71778 64937-64939 43085-43108 49377-49387 18080-18092 49698-49717 39744-39756 86358-86376 26196-26198 3767-3774 61592-61604 81766-81782
nooitixdlhesppns M 20 16829-16853 16200-16220 5594-5597 32777-32790 94775-94785 50713-50735 67052-67062 48878-48885 43961-43976 85099-85117 42150-42166 25816-25826 73778-73798 96755-96762 36542-36562 51507-51526 2628-2631 26724-26745 15205-15213 81057-81067
mqhsubvbcpdoregq M 20 22799-22809 82389-82407 7835-7850 4826-4830 86518-86523 57164-57178 93132-93145 77955-77975 91029-91052 68304-68318 67701-67722 73095-73099 61262-61273 23395-23417 82298-82310 1004-1029 64002-64011 65208-65213 35362-35381 11126-11150
rvsgqnajkzecwnpd M 20 35824-35841 86054-86071 7685-7690 74471-74484 66442-66451 15221-15241 15880-15890 24988-24995 67512-67523 26254-26270 20429-20445 76328-76333 67723-67738 51435-51460 61701-61706 6152-6161 32570-32585 20662-20687 82198-82204 98645-98667
nsrcwyptdvtgbbuk M 20 24011-24025 11951-11963 31319-31323 40265-40290 6014-6022 54522-54525 38764-38779 65679-65704 7877-7902 83441-83463 68444-68460 16499-16508 83937-83951 96699-96709 15843-15863 27411-27424 20223-20227 64681-64705 22336-22359 90379-90403
mazuvqptwfklbfqv M 20 87617-87630 63555-63570 27083-27086 28549-28560 52181-52198 17884-17892 17397-17404 74673-74675 55441-55446 83965-83968 89769-89786 68357-68373 74075-74095 64552-64568 35300-35302 33316-33323 45081-45095 92830-92849 6849-6871 57392-57394
nlpgllnzhslrwwog M 20 40210-40224 83408-83412 88325-88348 17244-17267 80039-80063 72799-72814 77471-77482 80087-80105 84436-84450 35656-35661 93947-93965 27949-27965 44428-44431 52240-52257 15351-15359 58839-58860 28047-28049 61400-61413 15429-15448 35094-35101
alchaaysvghrcftx I 20 69224-69230 47683-47700 75839-75851 1769-1792 80930-80951 23194-23214 90463-90473 27268-27287 3003-3010 36655-36673 74429-74447 39083-39101 58340-58346 35534-35551 56480-56491 44224-44239 7970-7977 1179-1198 64140-64151 26078-26090
nsphqictjpqectvc M 20 34256-34261 9933-9953 62425-62443 19749-19760 93420-93431 15785-15804 34338-34358 44117-44125 72549-72553 35164-35167 59514-59522 79546-79568 21073-21077 20375-20394 91785-91795 32565-32569 13998-14011 84812-84826 61291-61300 84193-84212
kwhgitcqmwgaewji M 20 89224-89234 591-603 59062-59085 42286-42311 33373-33385 97472-97493 35990-35996 5836-5856 96433-96451 75713-75719 2693-2697 15896-15917 41072-41086 39266-39278 79574-79585 69940-69947 24735-24756 91156-91160 40230-40253 53318-53333
dvtpcdawocsxtger M 20 44639-44657 63929-63932 42472-42488 86251-86254 61513-61537 16278-16296 55266-55289 26989-27014 46201-46212 39915-39923 88810-88820 98054-98065 7557-7566 3220-3238 70176-70191 34036-34054 38867-38882 44047-44061 48849-48873 22747-22772
hudbbjhnyfqgizdf M 20 32279-32302 86461-86482 58458-58473 89600-89608 25936-25938 74837-74859 46411-46421 90948-90970 25328-25334 45438-45451 71339-71364 42756-42763 52751-52770 65757-65767 15999-16013 26624-26639 641-663 18476-18496 41238-41254 24690-24704
eehrdsskfuqhefqe M 20 30180-30184 290-307 21384-21399 80382-80398 14766-14777 49792-49816 83836-83842 88901-88924 2114-2117 93607-93625 99165-99177 20235-20252 85921-85923 94680-94695 28828-28834 96497-96507 14848-14856 14687-14695 48665-48667 97328-97353
pldhxwxebgpdaolf M 20 405-425 42333-42352 65526-65545 88462-88464 57888-57894 7797-7801 20305-20313 91515-91538 46018-46031 41168-41192 45842-45845 40779-40788 56713-56724 74054-74074 56602-56610 53380-53392 44098-44108 78279-78303 87213-87222 77855-77857
ythtnoogysrwfjlk M 20 57140-57148 27129-27141 65773-65778 60758-60769 66096-66106 71594-71610 72126-72143 31403-31428 39637-39652 87281-87296 38783-38794 81074-81098 63023-63031 56776-56798 47450-47464 30439-30449 73117-73136 96267-96287 21496-21520 12631-12648
pqkvrgccrhmevlwt M 20 63098-63105 67170-67180 2581-2583 49551-49571 97252-97277 76364-76368 60990-60992 2185-2191 58162-58186 69051-69066 19905-19924 72291-72300 67220-67228 27748-27754 68798-68818 4971-4975 61094-61105 67524-67528 33684-33689 40452-40463
wjqorladulvksohn M 20 38189-38201 61378-61384 12058-12061 97781-97787 32691-32702 29035-29053 24908-24931 35646-35648 60514-60521 94842-94864 10552-10566 52444-52456 88264-88269 66294-66317 53971-53981 83204-83218 79494-79513 30413-30419 55404-55423 17-23
dyyjwupnjprquihz M 20 71559-71572 38011-38026 81645-81654 87109-87118 48585-48591 71387-71390 1485-1506 21895-21898 97886-97905 82942-82966 23841-23862 32349-32363 49282-49305 8597-8617 86577-86595 74641-74649 50975-50982 82879-82898 17597-17620 23036-23056
ytmgfgyyaedxedrg M 20 27310-27315 76924-76937 16622-16635 27986-27999 82477-82481 26387-26403 22774-22779 52362-52369 6517-6529 19618-19627 72854-72856 11026-11047 88720-88738 58235-58255 57525-57537 57269-57279 41417-41431 96559-96577 12082-12088 41581-41592
ftqpdczaablayauv M 20 44474-44496 95120-95126 8895-8914 88142-88145 29978-29989 73466-73479 14628-14638 34407-34424 5867-5875 78905-78916 52689-52704 43545-43563 53469-53477 21308-21313 58518-58528 54933-54941 85146-85162 8936-8946 32364-32379 72957-72960
dfsdlitqbkffjjpq M 20 23743-23745 20517-20532 53446-53461 65099-65107 67345-67348 15467-15488 82992-83013 2661-2665 13085-13093 15705-15725 46235-46247 15075-15087 59537-59554 58719-58726 95984-95987 49268-49276 39585-39587 70248-70272 79949-79951 7495-7509
ghtnmytstklwvisx M 20 65347-65357 83715-83730 64881-64893 32714-32730 13827-13829 31382-31393 37979-37981 61872-61885 50039-50053 21326-21334 43348-43358 66562-66576 28712-28718 76660-76673 40527-40537 1534-1547 46960-46974 29136-29158 83284-83287 25702-25727
aknsdodqbkfgaybf M 20 84262-84269 28500-28523 330-351 29190-29198 92742-92748 78955-78971 12062-12078 45270-45292 84851-84874 71904-71920 61554-61559 52547-52557 53285-53289 86040-86052 46936-46957 81249-81267 14971-14983 7696-7707 62729-62736 43805-43810
ukfokusftgefouqz M 20 48728-48748 25099-25122 71816-71818 20929-20932 64509-64514 53951-53966 19840-19857 75262-75278 88964-88987 44391-44407 50284-50286 76048-76073 19506-19530 64228-64230 91111-91118 59377-59383 91836-91861 12860-12875 10120-10126 54714-54720
mlfvvrazytzndsje M 20 79892-79915 40048-40069 18166-18174 20949-20960 70652-70674 28244-28267 9790-9803 67107-67115 59712-59719 89213-89216 54161-54163 32932-32949 219-237 91164-91189 12695-12707 69735-69741 8329-8347 67252-67268 34781-34794 41217-41229
cwkfdfxeuxarupns M 20 65488-65503 78646-78663 95022-95042 49673-49693 53400-53404 10073-10075 7486-7488 21408-21415 5322-5329 63849-63856 93839-93853 50736-50742 7671-7682 65718-65722 4005-4030 42642-42665 92289-92296 71532-71547 42889-42898 68513-68521
wktuxbmzkxmbdpms I 20 79268-79273 5721-5743 31221-31232 72478-72495 92982-92991 4151-4156 68754-68762 50958-50964 40300-40316 42260-42282 60820-60835 17439-17460 54272-54282 53482-53506 78040-78065 53893-53903 93506-93524 30295-30297 32205-32209 90120-90144
hhjerdljfxhedlzo M 20 54574-54587 59152-59173 92708-92715 32221-32245 11204-11215 20021-20027 60897-60901 57198-57220 97920-97934 11555-11580 60295-60300 9503-9519 7627-7648 46633-46649 26917-26921 11350-11369 36319-36326 65630-65639 4545-4555 64535-64551
gjrvgfriyjgwhmjp M 20 37923-37929 59260-59271 25794-25804 57102-57109 794-800 27480-27505 17805-17810 43254-43264 97523-97544 42952-42959 85127-85129 50322-50347 70891-70905 42775-42797 55357-55366 45042-45062 8129-8152 89293-89314 51252-51261 67418-67440
tsxeqvyljeasjxis M 20 36708-36718 33624-33638 88388-88394 62964-62982 21256-21273 5678-5681 37832-37844 34602-34615 61346-61360 55158-55162 33427-33441 52304-52327 14092-14097 66-73 29109-29133 68650-68672 36285-36292 14933-14955 8450-8463 53688-53711
rsfwpubajohjehvw M 20 89731-89745 60694-60718 99227-99245 49426-49432 10092-10117 13201-13205 97669-97681 7984-8003 81610-81627 56383-56396 55667-55689 92879-92901 95819-95821 95754-95775 30855-30859 52654-52675 8389-8398 22427-22430 62611-62619 77047-77065
jscaegjppskmwglw I 20 54047-54066 91090-91095 57399-57420 93573-93578 6748-6756 73323-73339 5909-5928 54822-54833 7466-7473 85171-85188 90188-90205 51591-51597 87239-87242 74373-74394 94636-94638 1972-1997 22687-22702 21205-21229 19058-19078 8421-8425
sssocjylhkcpmuof M 20 14653-14669 92690-92698 65993-66016 28705-28710 48613-48629 93867-93872 63351-63358 43865-43888 22392-22407 43209-43219 14474-14487 32045-32057 61897-61903 36187-36192 1159-1165 10711-10728 98323-98348 57727-57751 65178-65203 72149-72169
atcqilkiavvalfdl M 20 77816-77828 13797-13819 51048-51067 37603-37623 62378-62384 45208-45216 28459-28473 6591-6611 61758-61763 34139-34149 59812-59832 75024-75041 90063-90087 53126-53141 51132-51135 28882-28887 81487-81511 36125-36139 97425-97436 99335-99339
wixjtylqynzxfqla M 20 30654-30662 56175-56196 86881-86897 54873-54897 74704-74727 30708-30710 75358-75365 64254-64279 42564-42580 48770-48787 18119-18140 62030-62041 95662-95679 86012-86025 1688-1712 82675-82697 77976-77985 2763-2780 183-208 46254-46260
xpwluqjjrpuaadfw M 20 5196-5204 76713-76733 67152-67156 518-520 29654-29679 14582-14596 92210-92219 65287-65307 56886-56900 78590-78598 70988-71003 65644-65650 28660-28662 58995-59000 89404-89412 84088-84106 92100-92113 22708-22711 76609-76627 70943-70968
sccrjbcyhwcdrlia I 20 95900-95919 82557-82567 87791-87810 92648-92664 60204-60220 30546-30548 82837-82851 38358-38365 2398-2408 37807-37829 91488-91502 17709-17724 87023-87038 69659-69666 11538-11541 17088-17110 43476-43478 67622-67630 43931-43944 52836-52847
wnjzqwkxptlgwzcp M 20 58003-58024 76551-76554 43170-43188 83250-83271 84804-84806 54975-54978 1959-1962 81847-81871 77881-77890 26703-26710 37982-38004 66352-66365 55580-55589 79119-79138 98950-98962 27426-27439 63468-63479 93815-93833 89075-89097 8522-8532
fawqlrjxfahmmleu M 20 29016-29031 79289-79314 4031-4042 86226-86244 92088-92095 89694-89710 84620-84636 25590-25595 55350-55352 67097-67101 57304-57307 66183-66190 84034-84044 78431-78437 70496-70520 61567-61572 33950-33952 91505-91511 5254-5264 29807-29820
qnbtzdxvqnengvcd M 20 11831-11843 28230-28242 22986-23003 83397-83402 81371-81385 53106-53117 24603-24609 310-323 10082-10085 44016-44039 12562-12584 32159-32181 73146-73161 22839-22852 30239-30264 82380-82385 25072-25080 8364-8388 96239-96262 25558-25566
azpzhzhnydwggtpm M 20 44964-44977 38122-38125 10155-10179 9061-9068 45764-45779 61632-61639 69708-69718 93914-93917 96114-96120 81237-81240 7209-7220 90280-90300 62115-62140 8037-8049 14778-14803 2640-2652 5045-5062 66223-66227 82043-82057 41352-41371
amcfzteicwwsehlq I 20 93678-93691 68251-68268 15040-15046 46347-46361 1594-1602 90652-90673 46696-46721 18830-18846 25214-25234 77992-77994 6033-6048 11307-11315 62996-63009 94726-94746 37521-37543 16870-16877 88933-88950 21336-21340 49781-49790 42081-42095
aheulwhjxddyrble M 20 73021-73034 7080-7088 55510-55519 4706-4713 38211-38234 53655-53667 58258-58272 84224-84237 83504-83519 5231-5240 27073-27075 54402-54408 96845-96867 45316-45326 70299-70306 99799-99806 74453-74463 32470-32473 16121-16131 48965-48970
dyoskfglkpbejcvg M 20 68022-68030 81543-81551 55837-55852 75151-75169 104-124 42138-42149 75071-75093 3716-3732 37872-37890 74295-74302 53824-53826 30713-30717 43534-43544 24195-24217 61048-61052 20207-20214 30099-30110 74631-74634 72497-72514 34757-34778
jpvdeaeekjfskvpr M 20 1617-1626 69308-69320 29521-29525 57559-57568 42398-42420 25251-25256 25914-25923 57053-57060 16475-16487 95995-96015 76425-76431 25994-26013 41743-41748 31128-31151 31857-31868 6468-6476 46000-46016 64626-64636 81889-81904 36747-36753
vmnnwwaaaseebdrx I 20 28351-28360 43326-43344 64074-64077 39726-39743 72562-72568 73580-73582 94240-94265 78980-78996 34011-34022 54109-54127 93348-93370 87872-87896 6800-6825 37437-37460 30385-30405 19769-19785 63901-63915 93750-93756 30758-30760 46908-46916
llhekmpdihqrgkbp M 20 54795-54808 80580-80583 11316-11332 61066-61076 29101-29107 68224-68243 42361-42381 73661-73670 84696-84703 23277-23295 13953-13958 91126-91131 29889-29903 24177-24191 66511-66530 40497-40513 56701-56705 99706-99709 52333-52341 28869-28877
avvpavdzfnixtnay M 20 91459-91472 56055-56072 63443-63464 79321-79340 57596-57607 48955-48963 14144-14163 78445-78451 93995-94009 97594-97603 10589-10593 63264-63279 95373-95378 12966-12978 95127-95142 12245-12266 57435-57458 77674-77691 7272-7293 7376-7394
llwdcaaljkenpvvy M 20 98844-98859 13535-13537 2159-2162 16984-16995 80461-80473 55609-55611 51187-51202 32121-32128 2128-2141 33447-33462 89069-89071 22314-22320 44153-44168 17970-17980 74013-74015 59592-59598 72179-72201 75928-75949 53672-53677 10529-10549
ujzbaikmlvqugwch M 20 79587-79591 15562-15587 49119-49135 25969-25979 30674-30682 39551-39569 78312-78332 39976-39987 30598-30616 35249-35269 88850-88853 73349-73365 28425-28433 44437-44447 27052-27059 73632-73654 3789-3801 22413-22417 72018-72029 35514-35518
oymdtvdvdbhocxxt M 20 22159-22184 34560-34579 59043-59050 50472-50487 59884-59909 33052-33069 96793-96809 35692-35717 88866-88879 37391-37405 72555-72561 67381-67385 30075-30090 44321-44333 18369-18382 37891-37910 26121-26139 22596-22616 3837-3844 35589-35605
fugwcksvjelluthk M 20 4327-4348 50088-50103 2804-2821 59804-59807 38623-38631 89916-89918 25662-25682 95315-95335 75608-75629 56903-56906 489-511 24133-24144 54841-54858 16067-16086 12401-12421 6216-6236 95695-95706 48155-48173 36037-36040 12439-12447
kluyafbaasfubexh M 20 8739-8751 16252-16259 42424-42444 41315-41317 16444-16469 24946-24965 40914-40928 29365-29386 33341-33348 16820-16822 64443-64445 12156-12176 5209-5211 37751-37757 43059-43064 21457-21481 65143-65149 82513-82538 83592-83614 26291-26302
ycxqsimpciebzxgd M 20 66706-66727 13298-13309 57238-57252 69635-69648 7223-7238 23086-23096 18383-18391 15060-15065 66808-66817 34735-34737 60776-60785 12777-12792 60481-60493 65725-65732 2025-2031 61452-61467 35317-35324 38470-38475 15251-15273 19105-19111
xaoweggqxtbrklab M 20 76291-76296 62910-62928 5128-5147 11485-11500 2838-2849 68841-68852 35720-35740 87053-87066 99109-99129 54912-54932 85738-85763 896-899 77539-77556 59216-59223 99346-99367 32507-32527 60976-60978 1743-1746 18221-18244 33413-33416
pmqwzzjjbldmixgv M 20 26574-26588 17119-17122 71840-71859 15112-15131 94968-94979 67896-67920 40386-40409 45150-45168 92913-92928 17299-17305 97628-97651 67233-67243 56968-56970 70827-70836 13674-13681 9658-9680 77201-77213 40793-40810 15761-15769 47915-47932
umbnhqkrezkclhug M 20 6172-6192 7321-7332 31038-31054 42099-42116 15729-15736 56427-56450 18818-18820 26796-26809 85194-85212 27165-27169 92562-92582 38551-38553 96872-96874 65902-65905 99505-99527 57919-57930 28726-28728 79607-79618 66610-66632 2325-2336
fhdgkqzpdbyoitfk I 20 35885-35903 98716-98728 70595-70613 13471-13478 36759-36761 54639-54652 95838-95854 41845-41870 33215-33240 95884-95888 428-444 85371-85395 5777-5789 76004-76008 71861-71867 10143-10153 3039-3044 21725-21745 10046-10053 55520-55522
efpazzekyfwfavxs M 20 54553-54572 82641-82659 13450-13464 39459-39465 83297-83310 55297-55301 51364-51375 40348-40350 98553-98569 12817-12829 4613-4623 95387-95401 41938-41963 4177-4202 6687-6689 62316-62337 19151-19165 49933-49954 32737-32760 80436-80440
yzrrnyqxlyshectk M 20 50175-50191 8270-8272 66599-66608 69093-69101 44605-44621 10222-10224 67562-67574 7933-7956 19970-19984 27557-27579 29413-29435 6287-6312 24662-24677 99960-99972 80331-80336 58947-58952 57686-57693 43586-43602 44554-44578 77453-77468
nkixvzhhexpgntbb M 20 79751-79753 57465-57489 264-278 79405-79413 53917-53919 17069-17081 45562-45578 45294-45299 55201-55206 21433-21440 97373-97396 12721-12728 17275-17296 72826-72841 7111-7131 86821-86832 54672-54690 6400-6406 14166-14168 34055-34067
qtqibkeukuwrxggw M 20 90529-90544 82497-82505 19675-19699 94420-94437 37183-37192 5377-5386 86136-86144 44710-44734 83098-83106 84141-84162 81432-81451 36942-36949 91642-91666 61484-61495 87549-87556 78392-78406 77175-77179 13689-13708 23766-23783 62836-62838
uzeqevqbntazkudk I 20 47504-47519 11757-11776 40680-40700 28099-28115 56108-56124 47015-47039 31262-31280 72233-72255 52722-52739 99091-99100 16800-16803 50205-50228 74650-74653 9089-9093 74894-74914 19000-19019 17172-17181 93209-93218 74196-74204 79024-79026
pimrzrjvoweohzps M 20 19359-19362 24219-24233 34475-34485 96541-96558 85259-85274 11384-11398 58305-58330 98803-98810 61827-61839 1528-1531 98595-98610 35075-35083 39598-39613 5440-5458 85056-85076 68586-68595 66236-66253 9970-9992 28680-28695 30994-31007
idwekjcjgzcwviaz M 20 6995-7002 21542-21559 18853-18863 21607-21616 90496-90504 56510-56525 68948-68971 74928-74943 86926-86935 22863-22886 33204-33207 62158-62175 5101-5103 90334-90353 25438-25452 12985-12994 40430-40446 32600-32604 19604-19616 34519-34535
bvrdsjrtovzzyhap M 20 53853-53863 64024-64037 69177-69195 52384-52390 13439-13442 16580-16586 26812-26833 6621-6628 56799-56819 63732-63735 43707-43718 68685-68709 28477-28492 39306-39314 53511-53520 38992-38995 30149-30172 23341-23365 12461-12469 69555-69557
kgznajjiaotebsjk M 20 87492-87514 68083-68091 25356-25380 47789-47810 79828-79846 42064-42074 87042-87046 83426-83429 19385-19393 72407-72419 37300-37321 22893-22913 31526-31544 98978-98988 19166-19173 14423-14441 69130-69144 92433-92447 1348-1350 74364-74370
noudkrfysdgargdf M 20 50442-50467 22019-22044 9910-9926 73277-73297 99544-99548 10386-10392 26238-26241 88990-89011 40521-40525 13290-13295 51003-51017 79032-79034 73683-73688 31969-31983 33831-33840 12337-12345 30841-30843 19112-19128 19929-19942 66118-66135
qbmabbgfmvxqyzoi I 20 81564-81578 15164-15187 84729-84742 14175-14192 97652-97661 2503-2528 22235-22242 38604-38611 49637-49650 26167-26187 92373-92377 98353-98370 34895-34908 97700-97709 80972-80994 94702-94721 39845-39850 44062-44087 82729-82738 94794-94815
vsrpkmgdkkhoctfk M 20 95476-95479 24338-24350 66923-66948 50561-50576 98139-98147 33011-33032 40634-40636 45894-45897 68911-68915 21400-21403 77927-77939 84273-84287 51475-51488 41820-41824 8765-8769 90831-90846 56745-56761 8916-8925 3914-3919 30289-30294
awpesoyyetrqikqp M 20 25456-25473 38262-38278 31898-31901 40819-40839 80608-80618 1131-1151 9549-9554 24430-24455 24544-24555 36866-36871 12115-12126 80499-80509 77441-77451 32083-32085 48474-48482 64311-64328 80516-80519 90156-90178 81712-81720 59477-59501
hfrzbcoxgmnsktfv M 20 76815-76821 68044-68065 95965-95981 2220-2239 80267-80286 31626-31628 79631-79650 57509-57519 36910-36935 45704-45725 87425-87435 78877-78880 63942-63958 89186-89208 31336-31344 16385-16393 71792-71795 5801-5807 75045-75063 49247-49253
zyrlfgtnbedjuwct M 20 73742-73755 47526-47548 46812-46831 52776-52789 52619-52637 950-954 11886-11905 35631-35634 86406-86426 63317-63324 69159-69170 33527-33542 46578-46592 85623-85627 89034-89056 10284-10296 3907-3911 70432-70443 34185-34197 96153-96177
kynzvzmmbmrhpuls M 20 86090-86109 49463-49477 38436-38449 52797-52799 15638-15649 51971-51977 42910-42921 90994-91014 17352-17375 79040-79047 94459-94475 23162-23172 24490-24506 16324-16337 86954-86966 44290-44311 66745-66759 2435-2448 23142-23153 39336-39345
hexcraejitqceuix M 20 24774-24799 19861-19865 56563-56582 79072-79086 74988-74999 80528-80534 53172-53178 54746-54757 5998-6001 14384-14393 60664-60668 97144-97167 9778-9780 47227-47245 51993-51995 89879-89904 62077-62098 80355-80369 33784-33803 34391-34402
nzfplulemdebohwl M 20 13159-13174 61437-61448 63815-63837 58125-58131 16761-16772 96823-96832 53059-53068 25629-25650 83811-83826 67645-67660 71261-71279 8551-8574 62739-62743 18684-18692 79229-79248 20072-20088 2753-2759 64988-65002 4677-4701 87686-87690
pblqpoaxqtzjcwxu M 20 1893-1900 9706-9730 14445-14448 9459-9471 86281-86298 55164-55169 56315-56320 62527-62530 88603-88625 65332-65335 36490-36502 81738-81746 74568-74572 46150-46160 63535-63546 84529-84531 29229-29232 80021-80035 67016-67030 93891-93905
tenolgjfooyjwsja M 20 93382-93387 94959-94966 18288-18299 70351-70367 95156-95170 6111-6119 49509-49529 91964-91983 21997-22005 37152-37166 35179-35191 83129-83145 73483-73494 16094-16105 24277-24288 33653-33669 18509-18524 74120-74125 84317-84330 13963-13978
bizmnvxqxsvqllwf M 20 28525-28532 29949-29963 37015-37034 7916-7926 37238-37247 51530-51550 3210-3213 70307-70313 22381-22389 75310-75324 18002-18013 55234-55238 51942-51958 63075-63085 58561-58568 65021-65029 94897-94918 70854-70876 8098-8115 61910-61923
bmorczorqlgqjezw M 20 59935-59949 38809-38816 40721-40730 11914-11937 65568-65593 87908-87923 22814-22818 49593-49618 92946-92958 62391-62402 93776-93781 702-724 96303-96317 51646-51651 28019-28041 82768-82780 79182-79192 2934-2940 74310-74330 92076-92082
zdqdjpnfqcqfouhl M 20 36229-36247 7058-7070 37938-37948 10967-10981 23815-23829 44818-44825 88493-88512 40373-40379 64582-64606 25273-25277 6239-6241 60259-60268 38939-38941 34088-34097 8966-8985 33258-33260 38384-38391 90446-90449 10939-10941 70538-70560
bzhyspptnrerxswg M 20 32953-32970 14906-14913 64810-64830 29336-29357 17479-17483 64733-64755 93646-93652 63640-63651 92995-93017 62680-62695 2170-2183 33110-33116 69381-69402 55790-55794 5489-5507 73209-73217 75691-75708 27700-27704 56377-56379 98534-98539
nnlmpngqdiygbono M 20 14288-14298 15144-15147 1609-1614 76953-76974 87481-87487 66895-66905 21032-21047 753-759 23105-23128 29578-29584 48045-48065 11190-11199 53205-53212 13420-13428 79521-79544 91332-91347 3183-3207 17936-17953 1934-1950 47832-47850
ducockvmluxueqlg M 20 67739-67756 55463-55484 93480-93502 20934-20946 80187-80200 95750-95752 5628-5637 93447-93462 49873-49880 29542-29556 33127-33139 18422-18447 50679-50689 59359-59361 20855-20880 96919-96938 92669-92685 50550-50555 85679-85683 73273-73276
coxdnzovvoszqqpa M 20 62273-62290 5747-5767 19325-19345 14023-14036 78781-78792 96997-97008 1549-1552 82930-82940 37640-37652 63614-63621 67142-67151 36812-36815 8399-8406 78668-78678 66155-66169 83333-83341 87711-87734 93267-93279 66265-66282 93317-93320
1
100000
100
dyhofjlnebhtukdr M 20 2855-2867 28193-28209 68823-68834 39350-39360 45688-45697 86707-86718 93692-93698 99651-99665 26368-26376 63402-63427 54700-54711 74343-74358 88752-88765 30777-30781 26148-26160 31467-31488 35906-35918 94568-94587 24616-24624 49201-49224
rwprylskdzczvmkj M 20 83734-83752 36822-36846 39912-39914 42670-42695 56931-56933 53302-53315 95275-95300 57580-57584 46617-46628 60924-60939 33149-33152 42610-42618 10801-10821 94606-94615 67830-67834 76279-76284 23433-23455 5543-5561 20260-20274 17324-17333
wpuqzlmldqcfnfmb I 20 35971-35982 12657-12677 27531-27534 30751-30755 27877-27895 34925-34939 62296-62306 23929-23932 51814-51838 49070-49076 58656-58675 37627-37629 24315-24332 52090-52109 3479-3502 35331-35353 10751-10770 81389-81407 17425-17433 32653-32665
ibzvjuijhxnsamre M 20 82341-82366 86762-86767 12268-12291 42823-42836 45925-45944 76865-76878 33911-33922 8488-8495 84371-84375 49978-49985 2673-2689 19708-19718 40009-40034 79358-79374 93396-93408 99215-99223 14204-14224 36407-36420 60949-60951 48443-48449
ezpfrbtphwrfrsla M 20 10495-10505 39381-39385 19897-19902 99616-99631 71871-71888 25850-25874 3128-3143 1559-1581 30907-30910 2461-2482 51862-51874 55890-55894 89435-89441 65803-65818 51554-51556 2242-2252 46068-46080 90055-90062 89984-90008 5295-5317
ccazuvjxjzakgvqk M 20 90228-90249 38723-38725 15956-15976 47869-47877 92959-92977 80220-80240 71136-71153 48998-49010 87088-87095 36970-36973 83220-83241 34686-34710 50839-50844 76097-76114 19541-19564 59558-59578 29531-29541 98756-98767 21124-21132 60401-60419
olbstohtzjimbmnr M 20 52897-52921 61619-61631 16587-16599 2150-2152 34962-34966 41150-41158 58061-58072 17129-17153 46517-46538 85008-85010 89790-89814 52115-52135 44979-44991 64404-64414 69004-69018 25948-25951 13068-13077 74162-74187 20722-20729 64172-64196
glllycvksxmqrkxk M 20 26477-26483 90555-90579 78239-78263 87403-87418 45180-45196 34460-34474 3685-3704 4775-4779 85516-85531 44454-44461 37775-37797 35106-35118 22435-22460 42231-42237 83155-83174 99681-99688 55498-55500 95806-95817 92771-92775 75745-75768
vivnstvxlqvrsnau M 20 41455-41461 15331-15339 25049-25051 64428-64435 87981-88005 49230-49243 32425-32450 24271-24276 92595-92616 4214-4226 35456-35464 53982-54002 59918-59931 62002-62016 70148-70168 89623-89633 12202-12221 44367-44373 94182-94205 64384-64402
atplbvnyknqjgeyt M 20 75195-75220 51081-51091 48101-48113 10335-10345 11237-11256 61204-61212 27775-27791 7543-7548 2593-2618 64470-64487 42816-42818 5584-5590 45068-45076 93727-93738 60146-60149 11502-11508 29688-29704 41000-41012 93237-93252 88632-88645
puwuavkqmmdepqbl M 20 40072-40074 63959-63982 93528-93534 93299-93304 55377-55401 41296-41304 46223-46233 5688-5707 83360-83371 6885-6910 91559-91579 60079-60103 74966-74974 38737-38755 43614-43638 37096-37112 65395-65415 29853-29857 47064-47080 58090-58105
krajsaavjtmeetui M 20 32845-32869 97559-97578 36872-36881 28319-28344 44756-44762 13373-13388 74256-74281 14822-14825 23530-23555 19649-19660 19410-19412 27150-27155 77069-77085 78818-78827 77016-77031 55002-55011 75876-75887 20795-20819 80134-80146 46116-46126
nflhdpjrekmvkkrb M 20 48140-48145 9763-9771 70017-70021 98113-98131 30116-30141 75113-75123 93219-93232 79692-79698 31731-31753 12995-13018 10599-10623 17390-17395 74542-74560 73956-73959 13620-13645 23895-23917 87182-87207 38256-38261 83775-83796 4367-4386
bakrdcmedpjvdmla M 20 42033-42058 46781-46800 36978-36987 30479-30503 22135-22148 98075-98082 53636-53650 89373-89378 69335-69339 95429-95453 28290-28296 53871-53876 80293-80297 23225-23234 94998-95010 62546-62570 6449-6461 18583-18594 86780-86783 85839-85862
zepgtyasbhsglyxt M 20 78231-78238 78498-78519 75409-75424 38568-38579 50596-50612 46334-46342 45980-45984 18248-18273 56657-56676 76240-76261 53722-53729 6940-6961 82827-82835 31765-31784 49725-49736 62885-62893 69028-69039 58732-58754 71443-71451 43222-43231
exyniucnayxebzmk M 20 79943-79946 11671-11688 60106-60119 22476-22483 48560-48568 5951-5969 22617-22625 43689-43703 71761-71778 64937-64939 43085-43108 49377-49387 18080-18092 49698-49717 39744-39756 86358-86376 26196-26198 3767-3774 61592-61604 81766-81782
nooitixdlhesppns M 20 16829-16853 16200-16220 5594-5597 32777-32790 94775-94785 50713-50735 67052-67062 48878-48885 43961-43976 85099-85117 42150-42166 25816-25826 73778-73798 96755-96762 36542-36562 51507-51526 2628-2631 26724-26745 15205-15213 81057-81067
mqhsubvbcpdoregq M 20 22799-22809 82389-82407 7835-7850 4826-4830 86518-86523 57164-57178 93132-93145 77955-77975 91029-91052 68304-68318 67701-67722 73095-73099 61262-61273 23395-23417 82298-82310 1004-1029 64002-64011 65208-65213 35362-35381 11126-11150
rvsgqnajkzecwnpd M 20 35824-35841 86054-86071 7685-7690 74471-74484 66442-66451 15221-15241 15880-15890 24988-24995 67512-67523 26254-26270 20429-20445 76328-76333 67723-67738 51435-51460 61701-61706 6152-6161 32570-32585 20662-20687 82198-82204 98645-98667
nsrcwyptdvtgbbuk M 20 24011-24025 11951-11963 31319-31323 40265-40290 6014-6022 54522-54525 38764-38779 65679-65704 7877-7902 83441-83463 68444-68460 16499-16508 83937-83951 96699-96709 15843-15863 27411-27424 20223-20227 64681-64705 22336-22359 90379-90403
mazuvqptwfklbfqv M 20 87617-87630 63555-63570 27083-27086 28549-28560 52181-52198 17884-17892 17397-17404 74673-74675 55441-55446 83965-83968 89769-89786 68357-68373 74075-74095 64552-64568 35300-35302 33316-33323 45081-45095 92830-92849 6849-6871 57392-57394
nlpgllnzhslrwwog M 20 40210-40224 83408-83412 88325-88348 17244-17267 80039-80063 72799-72814 77471-77482 80087-80105 84436-84450 35656-35661 93947-93965 27949-27965 44428-44431 52240-52257 15351-15359 58839-58860 28047-28049 61400-61413 15429-15448 35094-35101
alchaaysvghrcftx I 20 69224-69230 47683-47700 75839-75851 1769-1792 80930-80951 23194-23214 90463-90473 27268-27287 3003-3010 36655-36673 74429-74447 39083-39101 58340-58346 35534-35551 56480-56491 44224-44239 7970-7977 1179-1198 64140-64151 26078-26090
nsphqictjpqectvc M 20 34256-34261 9933-9953 62425-62443 19749-19760 93420-93431 15785-15804 34338-34358 44117-44125 72549-72553 35164-35167 59514-59522 79546-79568 21073-21077 20375-20394 91785-91795 32565-32569 13998-14011 84812-84826 61291-61300 84193-84212
kwhgitcqmwgaewji M 20 89224-89234 591-603 59062-59085 42286-42311 33373-33385 97472-97493 35990-35996 5836-5856 96433-96451 75713-75719 2693-2697 15896-15917 41072-41086 39266-39278 79574-79585 69940-69947 24735-24756 91156-91160 40230-40253 53318-53333
dvtpcdawocsxtger M 20 44639-44657 63929-63932 42472-42488 86251-86254 61513-61537 16278-16296 55266-55289 26989-27014 46201-46212 39915-39923 88810-88820 98054-98065 7557-7566 3220-3238 70176-70191 34036-34054 38867-38882 44047-44061 48849-48873 22747-22772
hudbbjhnyfqgizdf M 20 32279-32302 86461-86482 58458-58473 89600-89608 25936-25938 74837-74859 46411-46421 90948-90970 25328-25334 45438-45451 71339-71364 42756-42763 52751-52770 65757-65767 15999-16013 26624-26639 641-663 18476-18496 41238-41254 24690-24704
eehrdsskfuqhefqe M 20 30180-30184 290-307 21384-21399 80382-80398 14766-14777 49792-49816 83836-83842 88901-88924 2114-2117 93607-93625 99165-99177 20235-20252 85921-85923 94680-94695 28828-28834 96497-96507 14848-14856 14687-14695 48665-48667 97328-97353
pldhxwxebgpdaolf M 20 405-425 42333-42352 65526-65545 88462-88464 57888-57894 7797-7801 20305-20313 91515-91538 46018-46031 41168-41192 45842-45845 40779-40788 56713-56724 74054-74074 56602-56610 53380-53392 44098-44108 78279-78303 87213-87222 77855-77857
ythtnoogysrwfjlk M 20 57140-57148 27129-27141 65773-65778 60758-60769 66096-66106 71594-71610 72126-72143 31403-31428 39637-39652 87281-87296 38783-38794 81074-81098 63023-63031 56776-56798 47450-47464 30439-30449 73117-73136 96267-96287 21496-21520 12631-12648
pqkvrgccrhmevlwt M 20 63098-63105 67170-67180 2581-2583 49551-49571 97252-97277 76364-76368 60990-60992 2185-2191 58162-58186 69051-69066 19905-19924 72291-72300 67220-67228 27748-27754 68798-68818 4971-4975 61094-61105 67524-67528 33684-33689 40452-40463
wjqorladulvksohn M 20 38189-38201 61378-61384 12058-12061 97781-97787 32691-32702 29035-29053 24908-24931 35646-35648 60514-60521 94842-94864 10552-10566 52444-52456 88264-88269 66294-66317 53971-53981 83204-83218 79494-79513 30413-30419 55404-55423 17-23
dyyjwupnjprquihz M 20 71559-71572 38011-38026 81645-81654 87109-87118 48585-48591 71387-71390 1485-1506 21895-21898 97886-97905 82942-82966 23841-23862 32349-32363 49282-49305 8597-8617 86577-86595 74641-74649 50975-50982 82879-82898 17597-17620 23036-23056
ytmgfgyyaedxedrg M 20 27310-27315 76924-76937 16622-16635 27986-27999 82477-82481 26387-26403 22774-22779 52362-52369 6517-6529 19618-19627 72854-72856 11026-11047 88720-88738 58235-58255 57525-57537 57269-57279 41417-41431 96559-96577 12082-12088 41581-41592
ftqpdczaablayauv M 20 44474-44496 95120-95126 8895-8914 88142-88145 29978-29989 73466-73479 14628-14638 34407-34424 5867-5875 78905-78916 52689-52704 43545-43563 53469-53477 21308-21313 58518-58528 54933-54941 85146-85162 8936-8946 32364-32379 72957-72960
dfsdlitqbkffjjpq M 20 23743-23745 20517-20532 53446-53461 65099-65107 67345-67348 15467-15488 82992-83013 2661-2665 13085-13093 15705-15725 46235-46247 15075-15087 59537-59554 58719-58726 95984-95987 49268-49276 39585-39587 70248-70272 79949-79951 7495-7509
ghtnmytstklwvisx M 20 65347-65357 83715-83730 64881-64893 32714-32730 13827-13829 31382-31393 37979-37981 61872-61885 50039-50053 21326-21334 43348-43358 66562-66576 28712-28718 76660-76673 40527-40537 1534-1547 46960-46974 29136-29158 83284-83287 25702-25727
aknsdodqbkfgaybf M 20 84262-84269 28500-28523 330-351 29190-29198 92742-92748 78955-78971 12062-12078 45270-45292 84851-84874 71904-71920 61554-61559 52547-52557 53285-53289 86040-86052 46936-46957 81249-81267 14971-14983 7696-7707 62729-62736 43805-43810
ukfokusftgefouqz M 20 48728-48748 25099-25122 71816-71818 20929-20932 64509-64514 53951-53966 19840-19857 75262-75278 88964-88987 44391-44407 50284-50286 76048-76073 19506-19530 64228-64230 91111-91118 59377-59383 91836-91861 12860-12875 10120-10126 54714-54720
mlfvvrazytzndsje M 20 79892-79915 40048-40069 18166-18174 20949-20960 70652-70674 28244-28267 9790-9803 67107-67115 59712-59719 89213-89216 54161-54163 32932-32949 219-237 91164-91189 12695-12707 69735-69741 8329-8347 67252-67268 34781-34794 41217-41229
cwkfdfxeuxarupns M 20 65488-65503 78646-78663 95022-95042 49673-49693 53400-53404 10073-10075 7486-7488 21408-21415 5322-5329 63849-63856 93839-93853 50736-50742 7671-7682 65718-65722 4005-4030 42642-42665 92289-92296 71532-71547 42889-42898 68513-68521
wktuxbmzkxmbdpms I 20 79268-79273 5721-5743 31221-31232 72478-72495 92982-92991 4151-4156 68754-68762 50958-50964 40300-40316 42260-42282 60820-60835 17439-17460 54272-54282 53482-53506 78040-78065 53893-53903 93506-93524 30295-30297 32205-32209 90120-90144
hhjerdljfxhedlzo M 20 54574-54587 59152-59173 92708-92715 32221-32245 11204-11215 20021-20027 60897-60901 57198-57220 97920-97934 11555-11580 60295-60300 9503-9519 7627-7648 46633-46649 26917-26921 11350-11369 36319-36326 65630-65639 4545-4555 64535-64551
gjrvgfriyjgwhmjp M 20 37923-37929 59260-59271 25794-25804 57102-57109 794-800 27480-27505 17805-17810 43254-43264 97523-97544 42952-42959 85127-85129 50322-50347 70891-70905 42775-42797 55357-55366 45042-45062 8129-8152 89293-89314 51252-51261 67418-67440
tsxeqvyljeasjxis M 20 36708-36718 33624-33638 88388-88394 62964-62982 21256-21273 5678-5681 37832-37844 34602-34615 61346-61360 55158-55162 33427-33441 52304-52327 14092-14097 66-73 29109-29133 68650-68672 36285-36292 14933-14955 8450-8463 53688-53711
rsfwpubajohjehvw M 20 89731-89745 60694-60718 99227-99245 49426-49432 10092-10117 13201-13205 97669-97681 7984-8003 81610-81627 56383-56396 55667-55689 92879-92901 95819-95821 95754-95775 30855-30859 52654-52675 8389-8398 22427-22430 62611-62619 77047-77065
jscaegjppskmwglw I 20 54047-54066 91090-91095 57399-57420 93573-93578 6748-6756 73323-73339 5909-5928 54822-54833 7466-7473 85171-85188 90188-90205 51591-51597 87239-87242 74373-74394 94636-94638 1972-1997 22687-22702 21205-21229 19058-19078 8421-8425
sssocjylhkcpmuof M 20 14653-14669 92690-92698 65993-66016 28705-28710 48613-48629 93867-93872 63351-63358 43865-43888 22392-22407 43209-43219 14474-14487 32045-32057 61897-61903 36187-36192 1159-1165 10711-10728 98323-98348 57727-57751 65178-65203 72149-72169
atcqilkiavvalfdl M 20 77816-77828 13797-13819 51048-51067 37603-37623 62378-62384 45208-45216 28459-28473 6591-6611 61758-61763 34139-34149 59812-59832 75024-75041 90063-90087 53126-53141 51132-51135 28882-28887 81487-81511 36125-36139 97425-97436 99335-99339
wixjtylqynzxfqla M 20 30654-30662 56175-56196 86881-86897 54873-54897 74704-74727 30708-30710 75358-75365 64254-64279 42564-42580 48770-48787 18119-18140 62030-62041 95662-95679 86012-86025 1688-1712 82675-82697 77976-77985 2763-2780 183-208 46254-46260
xpwluqjjrpuaadfw M 20 5196-5204 76713-76733 67152-67156 518-520 29654-29679 14582-14596 92210-92219 65287-65307 56886-56900 78590-78598 70988-71003 65644-65650 28660-28662 58995-59000 89404-89412 84088-84106 92100-92113 22708-22711 76609-76627 70943-70968
sccrjbcyhwcdrlia I 20 95900-95919 82557-82567 87791-87810 92648-92664 60204-60220 30546-30548 82837-82851 38358-38365 2398-2408 37807-37829 91488-91502 17709-17724 87023-87038 69659-69666 11538-11541 17088-17110 43476-43478 67622-67630 43931-43944 52836-52847
wnjzqwkxptlgwzcp M 20 58003-58024 76551-76554 43170-43188 83250-83271 84804-84806 54975-54978 1959-1962 81847-81871 77881-77890 26703-26710 37982-38004 66352-66365 55580-55589 79119-79138 98950-98962 27426-27439 63468-63479 93815-93833 89075-89097 8522-8532
fawqlrjxfahmmleu M 20 29016-29031 79289-79314 4031-4042 86226-86244 92088-92095 89694-89710 84620-84636 25590-25595 55350-55352 67097-67101 57304-57307 66183-66190 84034-84044 78431-78437 70496-70520 61567-61572 33950-33952 91505-91511 5254-5264 29807-29820
qnbtzdxvqnengvcd M 20 11831-11843 28230-28242 22986-23003 83397-83402 81371-81385 53106-53117 24603-24609 310-323 10082-10085 44016-44039 12562-12584 32159-32181 73146-73161 22839-22852 30239-30264 82380-82385 25072-25080 8364-8388 96239-96262 25558-25566
azpzhzhnydwggtpm M 20 44964-44977 38122-38125 10155-10179 9061-9068 45764-45779 61632-61639 69708-69718 93914-93917 96114-96120 81237-81240 7209-7220 90280-90300 62115-62140 8037-8049 14778-14803 2640-2652 5045-5062 66223-66227 82043-82057 41352-41371
amcfzteicwwsehlq I 20 93678-93691 68251-68268 15040-15046 46347-46361 1594-1602 90652-90673 46696-46721 18830-18846 25214-25234 77992-77994 6033-6048 11307-11315 62996-63009 94726-94746 37521-37543 16870-16877 88933-88950 21336-21340 49781-49790 42081-42095
aheulwhjxddyrble M 20 73021-73034 7080-7088 55510-55519 4706-4713 38211-38234 53655-53667 58258-58272 84224-84237 83504-83519 5231-5240 27073-27075 54402-54408 96845-96867 45316-45326 70299-70306 99799-99806 74453-74463 32470-32473 16121-16131 48965-48970
dyoskfglkpbejcvg M 20 68022-68030 81543-81551 55837-55852 75151-75169 104-124 42138-42149 75071-75093 3716-3732 37872-37890 74295-74302 53824-53826 30713-30717 43534-43544 24195-24217 61048-61052 20207-20214 30099-30110 74631-74634 72497-72514 34757-34778
jpvdeaeekjfskvpr M 20 1617-1626 69308-69320 29521-29525 57559-57568 42398-42420 25251-25256 25914-25923 57053-57060 16475-16487 95995-96015 76425-76431 25994-26013 41743-41748 31128-31151 31857-31868 6468-6476 46000-46016 64626-64636 81889-81904 36747-36753
vmnnwwaaaseebdrx I 20 28351-28360 43326-43344 64074-64077 39726-39743 72562-72568 73580-73582 94240-94265 78980-78996 34011-34022 54109-54127 93348-93370 87872-87896 6800-6825 37437-37460 30385-30405 19769-19785 63901-63915 93750-93756 30758-30760 46908-46916
llhekmpdihqrgkbp M 20 54795-54808 80580-80583 11316-11332 61066-61076 29101-29107 68224-68243 42361-42381 73661-73670 84696-84703 23277-23295 13953-13958 91126-91131 29889-29903 24177-24191 66511-66530 40497-40513 56701-56705 99706-99709 52333-52341 28869-28877
avvpavdzfnixtnay M 20 91459-91472 56055-56072 63443-63464 79321-79340 57596-57607 48955-48963 14144-14163 78445-78451 93995-94009 97594-97603 10589-10593 63264-63279 95373-95378 12966-12978 95127-95142 12245-12266 57435-57458 77674-77691 7272-7293 7376-7394
llwdcaaljkenpvvy M 20 98844-98859 13535-13537 2159-2162 16984-16995 80461-80473 55609-55611 51187-51202 32121-32128 2128-2141 33447-33462 89069-89071 22314-22320 44153-44168 17970-17980 74013-74015 59592-59598 72179-72201 75928-75949 53672-53677 10529-10549
ujzbaikmlvqugwch M 20 79587-79591 15562-15587 49119-49135 25969-25979 30674-30682 39551-39569 78312-78332 39976-39987 30598-30616 35249-35269 88850-88853 73349-73365 28425-28433 44437-44447 27052-27059 73632-73654 3789-3801 22413-22417 72018-72029 35514-35518
oymdtvdvdbhocxxt M 20 22159-22184 34560-34579 59043-59050 50472-50487 59884-59909 33052-33069 96793-96809 35692-35717 88866-88879 37391-37405 72555-72561 67381-67385 30075-30090 44321-44333 18369-18382 37891-37910 26121-26139 22596-22616 3837-3844 35589-35605
fugwcksvjelluthk M 20 4327-4348 50088-50103 2804-2821 59804-59807 38623-38631 89916-89918 25662-25682 95315-95335 75608-75629 56903-56906 489-511 24133-24144 54841-54858 16067-16086 12401-12421 6216-6236 95695-95706 48155-48173 36037-36040 12439-12447
kluyafbaasfubexh M 20 8739-8751 16252-16259 42424-42444 41315-41317 16444-16469 24946-24965 40914-40928 29365-29386 33341-33348 16820-16822 64443-64445 12156-12176 5209-5211 37751-37757 43059-43064 21457-21481 65143-65149 82513-82538 83592-83614 26291-26302
ycxqsimpciebzxgd M 20 66706-66727 13298-13309 57238-57252 69635-69648 7223-7238 23086-23096 18383-18391 15060-15065 66808-66817 34735-34737 60776-60785 12777-12792 60481-60493 65725-65732 2025-2031 61452-61467 35317-35324 38470-38475 15251-15273 19105-19111
xaoweggqxtbrklab M 20 76291-76296 62910-62928 5128-5147 11485-11500 2838-2849 68841-68852 35720-35740 87053-87066 99109-99129 54912-54932 85738-85763 896-899 77539-77556 59216-59223 99346-99367 32507-32527 60976-60978 1743-1746 18221-18244 33413-33416
pmqwzzjjbldmixgv M 20 26574-26588 17119-17122 71840-71859 15112-15131 94968-94979 67896-67920 40386-40409 45150-45168 92913-92928 17299-17305 97628-97651 67233-67243 56968-56970 70827-70836 13674-13681 9658-9680 77201-77213 40793-40810 15761-15769 47915-47932
umbnhqkrezkclhug M 20 6172-6192 7321-7332 31038-31054 42099-42116 15729-15736 56427-56450 18818-18820 26796-26809 85194-85212 27165-27169 92562-92582 38551-38553 96872-96874 65902-65905 99505-99527 57919-57930 28726-28728 79607-79618 66610-66632 2325-2336
fhdgkqzpdbyoitfk I 20 35885-35903 98716-98728 70595-70613 13471-13478 36759-36761 54639-54652 95838-95854 41845-41870 33215-33240 95884-95888 428-444 85371-85395 5777-5789 76004-76008 71861-71867 10143-10153 3039-3044 21725-21745 10046-10053 55520-55522
efpazzekyfwfavxs M 20 54553-54572 82641-82659 13450-13464 39459-39465 83297-83310 55297-55301 51364-51375 40348-40350 98553-98569 12817-12829 4613-4623 95387-95401 41938-41963 4177-4202 6687-6689 62316-62337 19151-19165 49933-49954 32737-32760 80436-80440
yzrrnyqxlyshectk M 20 50175-50191 8270-8272 66599-66608 69093-69101 44605-44621 10222-10224 67562-67574 7933-7956 19970-19984 27557-27579 29413-29435 6287-6312 24662-24677 99960-99972 80331-80336 58947-58952 57686-57693 43586-43602 44554-44578 77453-77468
nkixvzhhexpgntbb M 20 79751-79753 57465-57489 264-278 79405-79413 53917-53919 17069-17081 45562-45578 45294-45299 55201-55206 21433-21440 97373-97396 12721-12728 17275-17296 72826-72841 7111-7131 86821-86832 54672-54690 6400-6406 14166-14168 34055-34067
qtqibkeukuwrxggw M 20 90529-90544 82497-82505 19675-19699 94420-94437 37183-37192 5377-5386 86136-86144 44710-44734 83098-83106 84141-84162 81432-81451 36942-36949 91642-91666 61484-61495 87549-87556 78392-78406 77175-77179 13689-13708 23766-23783 62836-62838
uzeqevqbntazkudk I 20 47504-47519 11757-11776 40680-40700 28099-28115 56108-56124 47015-47039 31262-31280 72233-72255 52722-52739 99091-99100 16800-16803 50205-50228 74650-74653 9089-9093 74894-74914 19000-19019 17172-17181 93209-93218 74196-74204 79024-79026
pimrzrjvoweohzps M 20 19359-19362 24219-24233 34475-34485 96541-96558 85259-85274 11384-11398 58305-58330 98803-98810 61827-61839 1528-1531 98595-98610 35075-35083 39598-39613 5440-5458 85056-85076 68586-68595 66236-66253 9970-9992 28680-28695 30994-31007
idwekjcjgzcwviaz M 20 6995-7002 21542-21559 18853-18863 21607-21616 90496-90504 56510-56525 68948-68971 74928-74943 86926-86935 22863-22886 33204-33207 62158-62175 5101-5103 90334-90353 25438-25452 12985-12994 40430-40446 32600-32604 19604-19616 34519-34535
bvrdsjrtovzzyhap M 20 53853-53863 64024-64037 69177-69195 52384-52390 13439-13442 16580-16586 26812-26833 6621-6628 56799-56819 63732-63735 43707-43718 68685-68709 28477-28492 39306-39314 53511-53520 38992-38995 30149-30172 23341-23365 12461-12469 69555-69557
kgznajjiaotebsjk M 20 87492-87514 68083-68091 25356-25380 47789-47810 79828-79846 42064-42074 87042-87046 83426-83429 19385-19393 72407-72419 37300-37321 22893-22913 31526-31544 98978-98988 19166-19173 14423-14441 69130-69144 92433-92447 1348-1350 74364-74370
noudkrfysdgargdf M 20 50442-50467 22019-22044 9910-9926 73277-73297 99544-99548 10386-10392 26238-26241 88990-89011 40521-40525 13290-13295 51003-51017 79032-79034 73683-73688 31969-31983 33831-33840 12337-12345 30841-30843 19112-19128 19929-19942 66118-66135
qbmabbgfmvxqyzoi I 20 81564-81578 15164-15187 84729-84742 14175-14192 97652-97661 2503-2528 22235-22242 38604-38611 49637-49650 26167-26187 92373-92377 98353-98370 34895-34908 97700-97709 80972-80994 94702-94721 39845-39850 44062-44087 82729-82738 94794-94815
vsrpkmgdkkhoctfk M 20 95476-95479 24338-24350 66923-66948 50561-50576 98139-98147 33011-33032 40634-40636 45894-45897 68911-68915 21400-21403 77927-77939 84273-84287 51475-51488 41820-41824 8765-8769 90831-90846 56745-56761 8916-8925 3914-3919 30289-30294
awpesoyyetrqikqp M 20 25456-25473 38262-38278 31898-31901 40819-40839 80608-80618 1131-1151 9549-9554 24430-24455 24544-24555 36866-36871 12115-12126 80499-80509 77441-77451 32083-32085 48474-48482 64311-64328 80516-80519 90156-90178 81712-81720 59477-59501
hfrzbcoxgmnsktfv M 20 76815-76821 68044-68065 95965-95981 2220-2239 80267-80286 31626-31628 79631-79650 57509-57519 36910-36935 45704-45725 87425-87435 78877-78880 63942-63958 89186-89208 31336-31344 16385-16393 71792-71795 5801-5807 75045-75063 49247-49253
zyrlfgtnbedjuwct M 20 73742-73755 47526-47548 46812-46831 52776-52789 52619-52637 950-954 11886-11905 35631-35634 86406-86426 63317-63324 69159-69170 33527-33542 46578-46592 85623-85627 89034-89056 10284-10296 3907-3911 70432-70443 34185-34197 96153-96177
kynzvzmmbmrhpuls M 20 86090-86109 49463-49477 38436-38449 52797-52799 15638-15649 51971-51977 42910-42921 90994-91014 17352-17375 79040-79047 94459-94475 23162-23172 24490-24506 16324-16337 86954-86966 44290-44311 66745-66759 2435-2448 23142-23153 39336-39345
hexcraejitqceuix M 20 24774-24799 19861-19865 56563-56582 79072-79086 74988-74999 80528-80534 53172-53178 54746-54757 5998-6001 14384-14393 60664-60668 97144-97167 9778-9780 47227-47245 51993-51995 89879-89904 62077-62098 80355-80369 33784-33803 34391-34402
nzfplulemdebohwl M 20 13159-13174 61437-61448 63815-63837 58125-58131 16761-16772 96823-96832 53059-53068 25629-25650 83811-83826 67645-67660 71261-71279 8551-8574 62739-62743 18684-18692 79229-79248 20072-20088 2753-2759 64988-65002 4677-4701 87686-87690
pblqpoaxqtzjcwxu M 20 1893-1900 9706-9730 14445-14448 9459-9471 86281-86298 55164-55169 56315-56320 62527-62530 88603-88625 65332-65335 36490-36502 81738-81746 74568-74572 46150-46160 63535-63546 84529-84531 29229-29232 80021-80035 67016-67030 93891-93905
tenolgjfooyjwsja M 20 93382-93387 94959-94966 18288-18299 70351-70367 95156-95170 6111-6119 49509-49529 91964-91983 21997-22005 37152-37166 35179-35191 83129-83145 73483-73494 16094-16105 24277-24288 33653-33669 18509-18524 74120-74125 84317-84330 13963-13978
bizmnvxqxsvqllwf M 20 28525-28532 29949-29963 37015-37034 7916-7926 37238-37247 51530-51550 3210-3213 70307-70313 22381-22389 75310-75324 18002-18013 55234-55238 51942-51958 63075-63085 58561-58568 65021-65029 94897-94918 70854-70876 8098-8115 61910-61923
bmorczorqlgqjezw M 20 59935-59949 38809-38816 40721-40730 11914-11937 65568-65593 87908-87923 22814-22818 49593-49618 92946-92958 62391-62402 93776-93781 702-724 96303-96317 51646-51651 28019-28041 82768-82780 79182-79192 2934-2940 74310-74330 92076-92082
zdqdjpnfqcqfouhl M 20 36229-36247 7058-7070 37938-37948 10967-10981 23815-23829 44818-44825 88493-88512 40373-40379 64582-64606 25273-25277 6239-6241 60259-60268 38939-38941 34088-34097 8966-8985 33258-33260 38384-38391 90446-90449 10939-10941 70538-70560
bzhyspptnrerxswg M 20 32953-32970 14906-14913 64810-64830 29336-29357 17479-17483 64733-64755 93646-93652 63640-63651 92995-93017 62680-62695 2170-2183 33110-33116 69381-69402 55790-55794 5489-5507 73209-73217 75691-75708 27700-27704 56377-56379 98534-98539
nnlmpngqdiygbono M 20 14288-14298 15144-15147 1609-1614 76953-76974 87481-87487 66895-66905 21032-21047 753-759 23105-23128 29578-29584 48045-48065 11190-11199 53205-53212 13420-13428 79521-79544 91332-91347 3183-3207 17936-17953 1934-1950 47832-47850
ducockvmluxueqlg M 20 67739-67756 55463-55484 93480-93502 20934-20946 80187-80200 95750-95752 5628-5637 93447-93462 49873-49880 29542-29556 33127-33139 18422-18447 50679-50689 59359-59361 20855-20880 96919-96938 92669-92685 50550-50555 85679-85683 73273-73276
coxdnzovvoszqqpa M 20 62273-62290 5747-5767 19325-19345 14023-14036 78781-78792 96997-97008 1549-1552 82930-82940 37640-37652 63614-63621 67142-67151 36812-36815 8399-8406 78668-78678 66155-66169 83333-83341 87711-87734 93267-93279 66265-66282 93317-93320
100
100000
100
dyhofjlnebhtukdr I 20 2855-2867 28193-28209 68823-68834 39350-39360 45688-45697 86707-86718 93692-93698 99651-99665 26368-26376 63402-63427 54700-54711 74343-74358 88752-88765 30777-30781 26148-26160 31467-31488 35906-35918 94568-94587 24616-24624 49201-49224
rwprylskdzczvmkj I 20 83734-83752 36822-36846 39912-39914 42670-42695 56931-56933 53302-53315 95275-95300 57580-57584 46617-46628 60924-60939 33149-33152 42610-42618 10801-10821 94606-94615 67830-67834 76279-76284 23433-23455 5543-5561 20260-20274 17324-17333
wpuqzlmldqcfnfmb I 20 35971-35982 12657-12677 27531-27534 30751-30755 27877-27895 34925-34939 62296-62306 23929-23932 51814-51838 49070-49076 58656-58675 37627-37629 24315-24332 52090-52109 3479-3502 35331-35353 10751-10770 81389-81407 17425-17433 32653-32665
ibzvjuijhxnsamre I 20 82341-82366 86762-86767 12268-12291 42823-42836 45925-45944 76865-76878 33911-33922 8488-8495 84371-84375 49978-49985 2673-2689 19708-19718 40009-40034 79358-79374 93396-93408 99215-99223 14204-14224 36407-36420 60949-60951 48443-48449
ezpfrbtphwrfrsla I 20 10495-10505 39381-39385 19897-19902 99616-99631 71871-71888 25850-25874 3128-3143 1559-1581 30907-30910 2461-2482 51862-51874 55890-55894 89435-89441 65803-65818 51554-51556 2242-2252 46068-46080 90055-90062 89984-90008 5295-5317
ccazuvjxjzakgvqk I 20 90228-90249 38723-38725 15956-15976 47869-47877 92959-92977 80220-80240 71136-71153 48998-49010 87088-87095 36970-36973 83220-83241 34686-34710 50839-50844 76097-76114 19541-19564 59558-59578 29531-29541 98756-98767 21124-21132 60401-60419
olbstohtzjimbmnr I 20 52897-52921 61619-61631 16587-16599 2150-2152 34962-34966 41150-41158 58061-58072 17129-17153 46517-46538 85008-85010 89790-89814 52115-52135 44979-44991 64404-64414 69004-69018 25948-25951 13068-13077 74162-74187 20722-20729 64172-64196
glllycvksxmqrkxk I 20 26477-26483 90555-90579 78239-78263 87403-87418 45180-45196 34460-34474 3685-3704 4775-4779 85516-85531 44454-44461 37775-37797 35106-35118 22435-22460 42231-42237 83155-83174 99681-99688 55498-55500 95806-95817 92771-92775 75745-75768
vivnstvxlqvrsnau I 20 41455-41461 15331-15339 25049-25051 64428-64435 87981-88005 49230-49243 32425-32450 24271-24276 92595-92616 4214-4226 35456-35464 53982-54002 59918-59931 62002-62016 70148-70168 89623-89633 12202-12221 44367-44373 94182-94205 64384-64402
atplbvnyknqjgeyt I 20 75195-75220 51081-51091 48101-48113 10335-10345 11237-11256 61204-61212 27775-27791 7543-7548 2593-2618 64470-64487 42816-42818 5584-5590 45068-45076 93727-93738 60146-60149 11502-11508 29688-29704 41000-41012 93237-93252 88632-88645
puwuavkqmmdepqbl I 20 40072-40074 63959-63982 93528-93534 93299-93304 55377-55401 41296-41304 46223-46233 5688-5707 83360-83371 6885-6910 91559-91579 60079-60103 74966-74974 38737-38755 43614-43638 37096-37112 65395-65415 29853-29857 47064-47080 58090-58105
krajsaavjtmeetui I 20 32845-32869 97559-97578 36872-36881 28319-28344 44756-44762 13373-13388 74256-74281 14822-14825 23530-23555 19649-19660 19410-19412 27150-27155 77069-77085 78818-78827 77016-77031 55002-55011 75876-75887 20795-20819 80134-80146 46116-46126
nflhdpjrekmvkkrb I 20 48140-48145 9763-9771 70017-70021 98113-98131 30116-30141 75113-75123 93219-93232 79692-79698 31731-31753 12995-13018 10599-10623 17390-17395 74542-74560 73956-73959 13620-13645 23895-23917 87182-87207 38256-38261 83775-83796 4367-4386
bakrdcmedpjvdmla I 20 42033-42058 46781-46800 36978-36987 30479-30503 22135-22148 98075-98082 53636-53650 89373-89378 69335-69339 95429-95453 28290-28296 53871-53876 80293-80297 23225-23234 94998-95010 62546-62570 6449-6461 18583-18594 86780-86783 85839-85862
zepgtyasbhsglyxt I 20 78231-78238 78498-78519 75409-75424 38568-38579 50596-50612 46334-46342 45980-45984 18248-18273 56657-56676 76240-76261 53722-53729 6940-6961 82827-82835 31765-31784 49725-49736 62885-62893 69028-69039 58732-58754 71443-71451 43222-43231
exyniucnayxebzmk I 20 79943-79946 11671-11688 60106-60119 22476-22483 48560-48568 5951-5969 22617-22625 43689-43703 71761-71778 64937-64939 43085-43108 49377-49387 18080-18092 49698-49717 39744-39756 86358-86376 26196-26198 3767-3774 61592-61604 81766-81782
nooitixdlhesppns I 20 16829-16853 16200-16220 5594-5597 32777-32790 94775-94785 50713-50735 67052-67062 48878-48885 43961-43976 85099-85117 42150-42166 25816-25826 73778-73798 96755-96762 36542-36562 51507-51526 2628-2631 26724-26745 15205-15213 81057-81067
mqhsubvbcpdoregq I 20 22799-22809 82389-82407 7835-7850 4826-4830 86518-86523 57164-57178 93132-93145 77955-77975 91029-91052 68304-68318 67701-67722 73095-73099 61262-61273 23395-23417 82298-82310 1004-1029 64002-64011 65208-65213 35362-35381 11126-11150
rvsgqnajkzecwnpd I 20 35824-35841 86054-86071 7685-7690 74471-74484 66442-66451 15221-15241 15880-15890 24988-24995 67512-67523 26254-26270 20429-20445 76328-76333 67723-67738 51435-51460 61701-61706 6152-6161 32570-32585 20662-20687 82198-82204 98645-98667
nsrcwyptdvtgbbuk I 20 24011-24025 11951-11963 31319-31323 40265-40290 6014-6022 54522-54525 38764-38779 65679-65704 7877-7902 83441-83463 68444-68460 16499-16508 83937-83951 96699-96709 15843-15863 27411-27424 20223-20227 64681-64705 22336-22359 90379-90403
mazuvqptwfklbfqv I 20 87617-87630 63555-63570 27083-27086 28549-28560 52181-52198 17884-17892 17397-17404 74673-74675 55441-55446 83965-83968 89769-89786 68357-68373 74075-74095 64552-64568 35300-35302 33316-33323 45081-45095 92830-92849 6849-6871 57392-57394
nlpgllnzhslrwwog I 20 40210-40224 83408-83412 88325-88348 17244-17267 80039-80063 72799-72814 77471-77482 80087-80105 84436-84450 35656-35661 93947-93965 27949-27965 44428-44431 52240-52257 15351-15359 58839-58860 28047-28049 61400-61413 15429-15448 35094-35101
alchaaysvghrcftx I 20 69224-69230 47683-47700 75839-75851 1769-1792 80930-80951 23194-23214 90463-90473 27268-27287 3003-3010 36655-36673 74429-74447 39083-39101 58340-58346 35534-35551 56480-56491 44224-44239 7970-7977 1179-1198 64140-64151 26078-26090
nsphqictjpqectvc I 20 34256-34261 9933-9953 62425-62443 19749-19760 93420-93431 15785-15804 34338-34358 44117-44125 72549-72553 35164-35167 59514-59522 79546-79568 21073-21077 20375-20394 91785-91795 32565-32569 13998-14011 84812-84826 61291-61300 84193-84212
kwhgitcqmwgaewji I 20 89224-89234 591-603 59062-59085 42286-42311 33373-33385 97472-97493 35990-35996 5836-5856 96433-96451 75713-75719 2693-2697 15896-15917 41072-41086 39266-39278 79574-79585 69940-69947 24735-24756 91156-91160 40230-40253 53318-53333
dvtpcdawocsxtger I 20 44639-44657 63929-63932 42472-42488 86251-86254 61513-61537 16278-16296 55266-55289 26989-27014 46201-46212 39915-39923 88810-88820 98054-98065 7557-7566 3220-3238 70176-70191 34036-34054 38867-38882 44047-44061 48849-48873 22747-22772
hudbbjhnyfqgizdf I 20 32279-32302 86461-86482 58458-58473 89600-89608 25936-25938 74837-74859 46411-46421 90948-90970 25328-25334 45438-45451 71339-71364 42756-42763 52751-52770 65757-65767 15999-16013 26624-26639 641-663 18476-18496 41238-41254 24690-24704
eehrdsskfuqhefqe I 20 30180-30184 290-307 21384-21399 80382-80398 14766-14777 49792-49816 83836-83842 88901-88924 2114-2117 93607-93625 99165-99177 20235-20252 85921-85923 94680-94695 28828-28834 96497-96507 14848-14856 14687-14695 48665-48667 97328-97353
pldhxwxebgpdaolf I 20 405-425 42333-42352 65526-65545 88462-88464 57888-57894 7797-7801 20305-20313 91515-91538 46018-46031 41168-41192 45842-45845 40779-40788 56713-56724 74054-74074 56602-56610 53380-53392 44098-44108 78279-78303 87213-87222 77855-77857
ythtnoogysrwfjlk I 20 57140-57148 27129-27141 65773-65778 60758-60769 66096-66106 71594-71610 72126-72143 31403-31428 39637-39652 87281-87296 38783-38794 81074-81098 63023-63031 56776-56798 47450-47464 30439-30449 73117-73136 96267-96287 21496-21520 12631-12648
pqkvrgccrhmevlwt I 20 63098-63105 67170-67180 2581-2583 49551-49571 97252-97277 76364-76368 60990-60992 2185-2191 58162-58186 69051-69066 19905-19924 72291-72300 67220-67228 27748-27754 68798-68818 4971-4975 61094-61105 67524-67528 33684-33689 40452-40463
wjqorladulvksohn I 20 38189-38201 61378-61384 12058-12061 97781-97787 32691-32702 29035-29053 24908-24931 35646-35648 60514-60521 94842-94864 10552-10566 52444-52456 88264-88269 66294-66317 53971-53981 83204-83218 79494-79513 30413-30419 55404-55423 17-23
dyyjwupnjprquihz I 20 71559-71572 38011-38026 81645-81654 87109-87118 48585-48591 71387-71390 1485-1506 21895-21898 97886-97905 82942-82966 23841-23862 32349-32363 49282-49305 8597-8617 86577-86595 74641-74649 50975-50982 82879-82898 17597-17620 23036-23056
ytmgfgyyaedxedrg I 20 27310-27315 76924-76937 16622-16635 27986-27999 82477-82481 26387-26403 22774-22779 52362-52369 6517-6529 19618-19627 72854-72856 11026-11047 88720-88738 58235-58255 57525-57537 57269-57279 41417-41431 96559-96577 12082-12088 41581-41592
ftqpdczaablayauv I 20 44474-44496 95120-95126 8895-8914 88142-88145 29978-29989 73466-73479 14628-14638 34407-34424 5867-5875 78905-78916 52689-52704 43545-43563 53469-53477 21308-21313 58518-58528 54933-54941 85146-85162 8936-8946 32364-32379 72957-72960
dfsdlitqbkffjjpq I 20 23743-23745 20517-20532 53446-53461 65099-65107 67345-67348 15467-15488 82992-83013 2661-2665 13085-13093 15705-15725 46235-46247 15075-15087 59537-59554 58719-58726 95984-95987 49268-49276 39585-39587 70248-70272 79949-79951 7495-7509
ghtnmytstklwvisx I 20 65347-65357 83715-83730 64881-64893 32714-32730 13827-13829 31382-31393 37979-37981 61872-61885 50039-50053 21326-21334 43348-43358 66562-66576 28712-28718 76660-76673 40527-40537 1534-1547 46960-46974 29136-29158 83284-83287 25702-25727
aknsdodqbkfgaybf I 20 84262-84269 28500-28523 330-351 29190-29198 92742-92748 78955-78971 12062-12078 45270-45292 84851-84874 71904-71920 61554-61559 52547-52557 53285-53289 86040-86052 46936-46957 81249-81267 14971-14983 7696-7707 62729-62736 43805-43810
ukfokusftgefouqz I 20 48728-48748 25099-25122 71816-71818 20929-20932 64509-64514 53951-53966 19840-19857 75262-75278 88964-88987 44391-44407 50284-50286 76048-76073 19506-19530 64228-64230 91111-91118 59377-59383 91836-91861 12860-12875 10120-10126 54714-54720
mlfvvrazytzndsje I 20 79892-79915 40048-40069 18166-18174 20949-20960 70652-70674 28244-28267 9790-9803 67107-67115 59712-59719 89213-89216 54161-54163 32932-32949 219-237 91164-91189 12695-12707 69735-69741 8329-8347 67252-67268 34781-34794 41217-41229
cwkfdfxeuxarupns I 20 65488-65503 78646-78663 95022-95042 49673-49693 53400-53404 10073-10075 7486-7488 21408-21415 5322-5329 63849-63856 93839-93853 50736-50742 7671-7682 65718-65722 4005-4030 42642-42665 92289-92296 71532-71547 42889-42898 68513-68521
wktuxbmzkxmbdpms I 20 79268-79273 5721-5743 31221-31232 72478-72495 92982-92991 4151-4156 68754-68762 50958-50964 40300-40316 42260-42282 60820-60835 17439-17460 54272-54282 53482-53506 78040-78065 53893-53903 93506-93524 30295-30297 32205-32209 90120-90144
hhjerdljfxhedlzo I 20 54574-54587 59152-59173 92708-92715 32221-32245 11204-11215 20021-20027 60897-60901 57198-57220 97920-97934 11555-11580 60295-60300 9503-9519 7627-7648 46633-46649 26917-26921 11350-11369 36319-36326 65630-65639 4545-4555 64535-64551
gjrvgfriyjgwhmjp I 20 37923-37929 59260-59271 25794-25804 57102-57109 794-800 27480-27505 17805-17810 43254-43264 97523-97544 42952-42959 85127-85129 50322-50347 70891-70905 42775-42797 55357-55366 45042-45062 8129-8152 89293-89314 51252-51261 67418-67440
tsxeqvyljeasjxis I 20 36708-36718 33624-33638 88388-88394 62964-62982 21256-21273 5678-5681 37832-37844 34602-34615 61346-61360 55158-55162 33427-33441 52304-52327 14092-14097 66-73 29109-29133 68650-68672 36285-36292 14933-14955 8450-8463 53688-53711
rsfwpubajohjehvw I 20 89731-89745 60694-60718 99227-99245 49426-49432 10092-10117 13201-13205 97669-97681 7984-8003 81610-81627 56383-56396 55667-55689 92879-92901 95819-95821 95754-95775 30855-30859 52654-52675 8389-8398 22427-22430 62611-62619 77047-77065
jscaegjppskmwglw I 20 54047-54066 91090-91095 57399-57420 93573-93578 6748-6756 73323-73339 5909-5928 54822-54833 7466-7473 85171-85188 90188-90205 51591-51597 87239-87242 74373-74394 94636-94638 1972-1997 22687-22702 21205-21229 19058-19078 8421-8425
sssocjylhkcpmuof I 20 14653-14669 92690-92698 65993-66016 28705-28710 48613-48629 93867-93872 63351-63358 43865-43888 22392-22407 43209-43219 14474-14487 32045-32057 61897-61903 36187-36192 1159-1165 10711-10728 98323-98348 57727-57751 65178-65203 72149-72169
atcqilkiavvalfdl I 20 77816-77828 13797-13819 51048-51067 37603-37623 62378-62384 45208-45216 28459-28473 6591-6611 61758-61763 34139-34149 59812-59832 75024-75041 90063-90087 53126-53141 51132-51135 28882-28887 81487-81511 36125-36139 97425-97436 99335-99339
wixjtylqynzxfqla I 20 30654-30662 56175-56196 86881-86897 54873-54897 74704-74727 30708-30710 75358-75365 64254-64279 42564-42580 48770-48787 18119-18140 62030-62041 95662-95679 86012-86025 1688-1712 82675-82697 77976-77985 2763-2780 183-208 46254-46260
xpwluqjjrpuaadfw I 20 5196-5204 76713-76733 67152-67156 518-520 29654-29679 14582-14596 92210-92219 65287-65307 56886-56900 78590-78598 70988-71003 65644-65650 28660-28662 58995-59000 89404-89412 84088-84106 92100-92113 22708-22711 76609-76627 70943-70968
sccrjbcyhwcdrlia I 20 95900-95919 82557-82567 87791-87810 92648-92664 60204-60220 30546-30548 82837-82851 38358-38365 2398-2408 37807-37829 91488-91502 17709-17724 87023-87038 69659-69666 11538-11541 17088-17110 43476-43478 67622-67630 43931-43944 52836-52847
wnjzqwkxptlgwzcp I 20 58003-58024 76551-76554 43170-43188 83250-83271 84804-84806 54975-54978 1959-1962 81847-81871 77881-77890 26703-26710 37982-38004 66352-66365 55580-55589 79119-79138 98950-98962 27426-27439 63468-63479 93815-93833 89075-89097 8522-8532
fawqlrjxfahmmleu I 20 29016-29031 79289-79314 4031-4042 86226-86244 92088-92095 89694-89710 84620-84636 25590-25595 55350-55352 67097-67101 57304-57307 66183-66190 84034-84044 78431-78437 70496-70520 61567-61572 33950-33952 91505-91511 5254-5264 29807-29820
qnbtzdxvqnengvcd I 20 11831-11843 28230-28242 22986-23003 83397-83402 81371-81385 53106-53117 24603-24609 310-323 10082-10085 44016-44039 12562-12584 32159-32181 73146-73161 22839-22852 30239-30264 82380-82385 25072-25080 8364-8388 96239-96262 25558-25566
azpzhzhnydwggtpm I 20 44964-44977 38122-38125 10155-10179 9061-9068 45764-45779 61632-61639 69708-69718 93914-93917 96114-96120 81237-81240 7209-7220 90280-90300 62115-62140 8037-8049 14778-14803 2640-2652 5045-5062 66223-66227 82043-82057 41352-41371
amcfzteicwwsehlq I 20 93678-93691 68251-68268 15040-15046 46347-46361 1594-1602 90652-90673 46696-46721 18830-18846 25214-25234 77992-77994 6033-6048 11307-11315 62996-63009 94726-94746 37521-37543 16870-16877 88933-88950 21336-21340 49781-49790 42081-42095
aheulwhjxddyrble I 20 73021-73034 7080-7088 55510-55519 4706-4713 38211-38234 53655-53667 58258-58272 84224-84237 83504-83519 5231-5240 27073-27075 54402-54408 96845-96867 45316-45326 70299-70306 99799-99806 74453-74463 32470-32473 16121-16131 48965-48970
dyoskfglkpbejcvg I 20 68022-68030 81543-81551 55837-55852 75151-75169 104-124 42138-42149 75071-75093 3716-3732 37872-37890 74295-74302 53824-53826 30713-30717 43534-43544 24195-24217 61048-61052 20207-20214 30099-30110 74631-74634 72497-72514 34757-34778
jpvdeaeekjfskvpr I 20 1617-1626 69308-69320 29521-29525 57559-57568 42398-42420 25251-25256 25914-25923 57053-57060 16475-16487 95995-96015 76425-76431 25994-26013 41743-41748 31128-31151 31857-31868 6468-6476 46000-46016 64626-64636 81889-81904 36747-36753
vmnnwwaaaseebdrx I 20 28351-28360 43326-43344 64074-64077 39726-39743 72562-72568 73580-73582 94240-94265 78980-78996 34011-34022 54109-54127 93348-93370 87872-87896 6800-6825 37437-37460 30385-30405 19769-19785 63901-63915 93750-93756 30758-30760 46908-46916
llhekmpdihqrgkbp I 20 54795-54808 80580-80583 11316-11332 61066-61076 29101-29107 68224-68243 42361-42381 73661-73670 84696-84703 23277-23295 13953-13958 91126-91131 29889-29903 24177-24191 66511-66530 40497-40513 56701-56705 99706-99709 52333-52341 28869-28877
avvpavdzfnixtnay I 20 91459-91472 56055-56072 63443-63464 79321-79340 57596-57607 48955-48963 14144-14163 78445-78451 93995-94009 97594-97603 10589-10593 63264-63279 95373-95378 12966-12978 95127-95142 12245-12266 57435-57458 77674-77691 7272-7293 7376-7394
llwdcaaljkenpvvy I 20 98844-98859 13535-13537 2159-2162 16984-16995 80461-80473 55609-55611 51187-51202 32121-32128 2128-2141 33447-33462 89069-89071 22314-22320 44153-44168 17970-17980 74013-74015 59592-59598 72179-72201 75928-75949 53672-53677 10529-10549
ujzbaikmlvqugwch I 20 79587-79591 15562-15587 49119-49135 25969-25979 30674-30682 39551-39569 78312-78332 39976-39987 30598-30616 35249-35269 88850-88853 73349-73365 28425-28433 44437-44447 27052-27059 73632-73654 3789-3801 22413-22417 72018-72029 35514-35518
oymdtvdvdbhocxxt I 20 22159-22184 34560-34579 59043-59050 50472-50487 59884-59909 33052-33069 96793-96809 35692-35717 88866-88879 37391-37405 72555-72561 67381-67385 30075-30090 44321-44333 18369-18382 37891-37910 26121-26139 22596-22616 3837-3844 35589-35605
fugwcksvjelluthk I 20 4327-4348 50088-50103 2804-2821 59804-59807 38623-38631 89916-89918 25662-25682 95315-95335 75608-75629 56903-56906 489-511 24133-24144 54841-54858 16067-16086 12401-12421 6216-6236 95695-95706 48155-48173 36037-36040 12439-12447
kluyafbaasfubexh I 20 8739-8751 16252-16259 42424-42444 41315-41317 16444-16469 24946-24965 40914-40928 29365-29386 33341-33348 16820-16822 64443-64445 12156-12176 5209-5211 37751-37757 43059-43064 21457-21481 65143-65149 82513-82538 83592-83614 26291-26302
ycxqsimpciebzxgd I 20 66706-66727 13298-13309 57238-57252 69635-69648 7223-7238 23086-23096 18383-18391 15060-15065 66808-66817 34735-34737 60776-60785 12777-12792 60481-60493 65725-65732 2025-2031 61452-61467 35317-35324 38470-38475 15251-15273 19105-19111
xaoweggqxtbrklab I 20 76291-76296 62910-62928 5128-5147 11485-11500 2838-2849 68841-68852 35720-35740 87053-87066 99109-99129 54912-54932 85738-85763 896-899 77539-77556 59216-59223 99346-99367 32507-32527 60976-60978 1743-1746 18221-18244 33413-33416
pmqwzzjjbldmixgv I 20 26574-26588 17119-17122 71840-71859 15112-15131 94968-94979 67896-67920 40386-40409 45150-45168 92913-92928 17299-17305 97628-97651 67233-67243 56968-56970 70827-70836 13674-13681 9658-9680 77201-77213 40793-40810 15761-15769 47915-47932
umbnhqkrezkclhug I 20 6172-6192 7321-7332 31038-31054 42099-42116 15729-15736 56427-56450 18818-18820 26796-26809 85194-85212 27165-27169 92562-92582 38551-38553 96872-96874 65902-65905 99505-99527 57919-57930 28726-28728 79607-79618 66610-66632 2325-2336
fhdgkqzpdbyoitfk I 20 35885-35903 98716-98728 70595-70613 13471-13478 36759-36761 54639-54652 95838-95854 41845-41870 33215-33240 95884-95888 428-444 85371-85395 5777-5789 76004-76008 71861-71867 10143-10153 3039-3044 21725-21745 10046-10053 55520-55522
efpazzekyfwfavxs I 20 54553-54572 82641-82659 13450-13464 39459-39465 83297-83310 55297-55301 51364-51375 40348-40350 98553-98569 12817-12829 4613-4623 95387-95401 41938-41963 4177-4202 6687-6689 62316-62337 19151-19165 49933-49954 32737-32760 80436-80440
yzrrnyqxlyshectk I 20 50175-50191 8270-8272 66599-66608 69093-69101 44605-44621 10222-10224 67562-67574 7933-7956 19970-19984 27557-27579 29413-29435 6287-6312 24662-24677 99960-99972 80331-80336 58947-58952 57686-57693 43586-43602 44554-44578 77453-77468
nkixvzhhexpgntbb I 20 79751-79753 57465-57489 264-278 79405-79413 53917-53919 17069-17081 45562-45578 45294-45299 55201-55206 21433-21440 97373-97396 12721-12728 17275-17296 72826-72841 7111-7131 86821-86832 54672-54690 6400-6406 14166-14168 34055-34067
qtqibkeukuwrxggw I 20 90529-90544 82497-82505 19675-19699 94420-94437 37183-37192 5377-5386 86136-86144 44710-44734 83098-83106 84141-84162 81432-81451 36942-36949 91642-91666 61484-61495 87549-87556 78392-78406 77175-77179 13689-13708 23766-23783 62836-62838
uzeqevqbntazkudk I 20 47504-47519 11757-11776 40680-40700 28099-28115 56108-56124 47015-47039 31262-31280 72233-72255 52722-52739 99091-99100 16800-16803 50205-50228 74650-74653 9089-9093 74894-74914 19000-19019 17172-17181 93209-93218 74196-74204 79024-79026
pimrzrjvoweohzps I 20 19359-19362 24219-24233 34475-34485 96541-96558 85259-85274 11384-11398 58305-58330 98803-98810 61827-61839 1528-1531 98595-98610 35075-35083 39598-39613 5440-5458 85056-85076 68586-68595 66236-66253 9970-9992 28680-28695 30994-31007
idwekjcjgzcwviaz I 20 6995-7002 21542-21559 18853-18863 21607-21616 90496-90504 56510-56525 68948-68971 74928-74943 86926-86935 22863-22886 33204-33207 62158-62175 5101-5103 90334-90353 25438-25452 12985-12994 40430-40446 32600-32604 19604-19616 34519-34535
bvrdsjrtovzzyhap I 20 53853-53863 64024-64037 69177-69195 52384-52390 13439-13442 16580-16586 26812-26833 6621-6628 56799-56819 63732-63735 43707-43718 68685-68709 28477-28492 39306-39314 53511-53520 38992-38995 30149-30172 23341-23365 12461-12469 69555-69557
kgznajjiaotebsjk I 20 87492-87514 68083-68091 25356-25380 47789-47810 79828-79846 42064-42074 87042-87046 83426-83429 19385-19393 72407-72419 37300-37321 22893-22913 31526-31544 98978-98988 19166-19173 14423-14441 69130-69144 92433-92447 1348-1350 74364-74370
noudkrfysdgargdf I 20 50442-50467 22019-22044 9910-9926 73277-73297 99544-99548 10386-10392 26238-26241 88990-89011 40521-40525 13290-13295 51003-51017 79032-79034 73683-73688 31969-31983 33831-33840 12337-12345 30841-30843 19112-19128 19929-19942 66118-66135
qbmabbgfmvxqyzoi I 20 81564-81578 15164-15187 84729-84742 14175-14192 97652-97661 2503-2528 22235-22242 38604-38611 49637-49650 26167-26187 92373-92377 98353-98370 34895-34908 97700-97709 80972-80994 94702-94721 39845-39850 44062-44087 82729-82738 94794-94815
vsrpkmgdkkhoctfk I 20 95476-95479 24338-24350 66923-66948 50561-50576 98139-98147 33011-33032 40634-40636 45894-45897 68911-68915 21400-21403 77927-77939 84273-84287 51475-51488 41820-41824 8765-8769 90831-90846 56745-56761 8916-8925 3914-3919 30289-30294
awpesoyyetrqikqp I 20 25456-25473 38262-38278 31898-31901 40819-40839 80608-80618 1131-1151 9549-9554 24430-24455 24544-24555 36866-36871 12115-12126 80499-80509 77441-77451 32083-32085 48474-48482 64311-64328 80516-80519 90156-90178 81712-81720 59477-59501
hfrzbcoxgmnsktfv I 20 76815-76821 68044-68065 95965-95981 2220-2239 80267-80286 31626-31628 79631-79650 57509-57519 36910-36935 45704-45725 87425-87435 78877-78880 63942-63958 89186-89208 31336-31344 16385-16393 71792-71795 5801-5807 75045-75063 49247-49253
zyrlfgtnbedjuwct I 20 73742-73755 47526-47548 46812-46831 52776-52789 52619-52637 950-954 11886-11905 35631-35634 86406-86426 63317-63324 69159-69170 33527-33542 46578-46592 85623-85627 89034-89056 10284-10296 3907-3911 70432-70443 34185-34197 96153-96177
kynzvzmmbmrhpuls I 20 86090-86109 49463-49477 38436-38449 52797-52799 15638-15649 51971-51977 42910-42921 90994-91014 17352-17375 79040-79047 94459-94475 23162-23172 24490-24506 16324-16337 86954-86966 44290-44311 66745-66759 2435-2448 23142-23153 39336-39345
hexcraejitqceuix I 20 24774-24799 19861-19865 56563-56582 79072-79086 74988-74999 80528-80534 53172-53178 54746-54757 5998-6001 14384-14393 60664-60668 97144-97167 9778-9780 47227-47245 51993-51995 89879-89904 62077-62098 80355-80369 33784-33803 34391-34402
nzfplulemdebohwl I 20 13159-13174 61437-61448 63815-63837 58125-58131 16761-16772 96823-96832 53059-53068 25629-25650 83811-83826 67645-67660 71261-71279 8551-8574 62739-62743 18684-18692 79229-79248 20072-20088 2753-2759 64988-65002 4677-4701 87686-87690
pblqpoaxqtzjcwxu I 20 1893-1900 9706-9730 14445-14448 9459-9471 86281-86298 55164-55169 56315-56320 62527-62530 88603-88625 65332-65335 36490-36502 81738-81746 74568-74572 46150-46160 63535-63546 84529-84531 29229-29232 80021-80035 67016-67030 93891-93905
tenolgjfooyjwsja I 20 93382-93387 94959-94966 18288-18299 70351-70367 95156-95170 6111-6119 49509-49529 91964-91983 21997-22005 37152-37166 35179-35191 83129-83145 73483-73494 16094-16105 24277-24288 33653-33669 18509-18524 74120-74125 84317-84330 13963-13978
bizmnvxqxsvqllwf I 20 28525-28532 29949-29963 37015-37034 7916-7926 37238-37247 51530-51550 3210-3213 70307-70313 22381-22389 75310-75324 18002-18013 55234-55238 51942-51958 63075-63085 58561-58568 65021-65029 94897-94918 70854-70876 8098-8115 61910-61923
bmorczorqlgqjezw I 20 59935-59949 38809-38816 40721-40730 11914-11937 65568-65593 87908-87923 22814-22818 49593-49618 92946-92958 62391-62402 93776-93781 702-724 96303-96317 51646-51651 28019-28041 82768-82780 79182-79192 2934-2940 74310-74330 92076-92082
zdqdjpnfqcqfouhl I 20 36229-36247 7058-7070 37938-37948 10967-10981 23815-23829 44818-44825 88493-88512 40373-40379 64582-64606 25273-25277 6239-6241 60259-60268 38939-38941 34088-34097 8966-8985 33258-33260 38384-38391 90446-90449 10939-10941 70538-70560
bzhyspptnrerxswg I 20 32953-32970 14906-14913 64810-64830 29336-29357 17479-17483 64733-64755 93646-93652 63640-63651 92995-93017 62680-62695 2170-2183 33110-33116 69381-69402 55790-55794 5489-5507 73209-73217 75691-75708 27700-27704 56377-56379 98534-98539
nnlmpngqdiygbono I 20 14288-14298 15144-15147 1609-1614 76953-76974 87481-87487 66895-66905 21032-21047 753-759 23105-23128 29578-29584 48045-48065 11190-11199 53205-53212 13420-13428 79521-79544 91332-91347 3183-3207 17936-17953 1934-1950 47832-47850
ducockvmluxueqlg I 20 67739-67756 55463-55484 93480-93502 20934-20946 80187-80200 95750-95752 5628-5637 93447-93462 49873-49880 29542-29556 33127-33139 18422-18447 50679-50689 59359-59361 20855-20880 96919-96938 92669-92685 50550-50555 85679-85683 73273-73276
coxdnzovvoszqqpa I 20 62273-62290 5747-5767 19325-19345 14023-14036 78781-78792 96997-97008 1549-1552 82930-82940 37640-37652 63614-63621 67142-67151 36812-36815 8399-8406 78668-78678 66155-66169 83333-83341 87711-87734 93267-93279 66265-66282 93317-93320
100
100000
100
dyhofjlnebhtukdr I 20 2855-2867 28193-28209 68823-68834 39350-39360 45688-45697 86707-86718 93692-93698 99651-99665 26368-26376 63402-63427 54700-54711 74343-74358 88752-88765 30777-30781 26148-26160 31467-31488 35906-35918 94568-94587 24616-24624 49201-49224
rwprylskdzczvmkj M 20 83734-83752 36822-36846 39912-39914 42670-42695 56931-56933 53302-53315 95275-95300 57580-57584 46617-46628 60924-60939 33149-33152 42610-42618 10801-10821 94606-94615 67830-67834 76279-76284 23433-23455 5543-5561 20260-20274 17324-17333
wpuqzlmldqcfnfmb I 20 35971-35982 12657-12677 27531-27534 30751-30755 27877-27895 34925-34939 62296-62306 23929-23932 51814-51838 49070-49076 58656-58675 37627-37629 24315-24332 52090-52109 3479-3502 35331-35353 10751-10770 81389-81407 17425-17433 32653-32665
ibzvjuijhxnsamre M 20 82341-82366 86762-86767 12268-12291 42823-42836 45925-45944 76865-76878 33911-33922 8488-8495 84371-84375 49978-49985 2673-2689 19708-19718 40009-40034 79358-79374 93396-93408 99215-99223 14204-14224 36407-36420 60949-60951 48443-48449
ezpfrbtphwrfrsla I 20 10495-10505 39381-39385 19897-19902 99616-99631 71871-71888 25850-25874 3128-3143 1559-1581 30907-30910 2461-2482 51862-51874 55890-55894 89435-89441 65803-65818 51554-51556 2242-2252 46068-46080 90055-90062 89984-90008 5295-5317
ccazuvjxjzakgvqk M 20 90228-90249 38723-38725 15956-15976 47869-47877 92959-92977 80220-80240 71136-71153 48998-49010 87088-87095 36970-36973 83220-83241 34686-34710 50839-50844 76097-76114 19541-19564 59558-59578 29531-29541 98756-98767 21124-21132 60401-60419
olbstohtzjimbmnr I 20 52897-52921 61619-61631 16587-16599 2150-2152 34962-34966 41150-41158 58061-58072 17129-17153 46517-46538 85008-85010 89790-89814 52115-52135 44979-44991 64404-64414 69004-69018 25948-25951 13068-13077 74162-74187 20722-20729 64172-64196
glllycvksxmqrkxk M 20 26477-26483 90555-90579 78239-78263 87403-87418 45180-45196 34460-34474 3685-3704 4775-4779 85516-85531 44454-44461 37775-37797 35106-35118 22435-22460 42231-42237 83155-83174 99681-99688 55498-55500 95806-95817 92771-92775 75745-75768
vivnstvxlqvrsnau I 20 41455-41461 15331-15339 25049-25051 64428-64435 87981-88005 49230-49243 32425-32450 24271-24276 92595-92616 4214-4226 35456-35464 53982-54002 59918-59931 62002-62016 70148-70168 89623-89633 12202-12221 44367-44373 94182-94205 64384-64402
atplbvnyknqjgeyt M 20 75195-75220 51081-51091 48101-48113 10335-10345 11237-11256 61204-61212 27775-27791 7543-7548 2593-2618 64470-64487 42816-42818 5584-5590 45068-45076 93727-93738 60146-60149 11502-11508 29688-29704 41000-41012 93237-93252 88632-88645
puwuavkqmmdepqbl I 20 40072-40074 63959-63982 93528-93534 93299-93304 55377-55401 41296-41304 46223-46233 5688-5707 83360-83371 6885-6910 91559-91579 60079-60103 74966-74974 38737-38755 43614-43638 37096-37112 65395-65415 29853-29857 47064-47080 58090-58105
krajsaavjtmeetui M 20 32845-32869 97559-97578 36872-36881 28319-28344 44756-44762 13373-13388 74256-74281 14822-14825 23530-23555 19649-19660 19410-19412 27150-27155 77069-77085 78818-78827 77016-77031 55002-55011 75876-75887 20795-20819 80134-80146 46116-46126
nflhdpjrekmvkkrb I 20 48140-48145 9763-9771 70017-70021 98113-98131 30116-30141 75113-75123 93219-93232 79692-79698 31731-31753 12995-13018 10599-10623 17390-17395 74542-74560 73956-73959 13620-13645 23895-23917 87182-87207 38256-38261 83775-83796 4367-4386
bakrdcmedpjvdmla M 20 42033-42058 46781-46800 36978-36987 30479-30503 22135-22148 98075-98082 53636-53650 89373-89378 69335-69339 95429-95453 28290-28296 53871-53876 80293-80297 23225-23234 94998-95010 62546-62570 6449-6461 18583-18594 86780-86783 85839-85862
zepgtyasbhsglyxt I 20 78231-78238 78498-78519 75409-75424 38568-38579 50596-50612 46334-46342 45980-45984 18248-18273 56657-56676 76240-76261 53722-53729 6940-6961 82827-82835 31765-31784 49725-49736 62885-62893 69028-69039 58732-58754 71443-71451 43222-43231
exyniucnayxebzmk M 20 79943-79946 11671-11688 60106-60119 22476-22483 48560-48568 5951-5969 22617-22625 43689-43703 71761-71778 64937-64939 43085-43108 49377-49387 18080-18092 49698-49717 39744-39756 86358-86376 26196-26198 3767-3774 61592-61604 81766-81782
nooitixdlhesppns I 20 16829-16853 16200-16220 5594-5597 32777-32790 94775-94785 50713-50735 67052-67062 48878-48885 43961-43976 85099-85117 42150-42166 25816-25826 73778-73798 96755-96762 36542-36562 51507-51526 2628-2631 26724-26745 15205-15213 81057-81067
mqhsubvbcpdoregq M 20 22799-22809 82389-82407 7835-7850 4826-4830 86518-86523 57164-57178 93132-93145 77955-77975 91029-91052 68304-68318 67701-67722 73095-73099 61262-61273 23395-23417 82298-82310 1004-1029 64002-64011 65208-65213 35362-35381 11126-11150
rvsgqnajkzecwnpd I 20 35824-35841 86054-86071 7685-7690 74471-74484 66442-66451 15221-15241 15880-15890 24988-24995 67512-67523 26254-26270 20429-20445 76328-76333 67723-67738 51435-51460 61701-61706 6152-6161 32570-32585 20662-20687 82198-82204 98645-98667
nsrcwyptdvtgbbuk M 20 24011-24025 11951-11963 31319-31323 40265-40290 6014-6022 54522-54525 38764-38779 65679-65704 7877-7902 83441-83463 68444-68460 16499-16508 83937-83951 96699-96709 15843-15863 27411-27424 20223-20227 64681-64705 22336-22359 90379-90403
mazuvqptwfklbfqv I 20 87617-87630 63555-63570 27083-27086 28549-28560 52181-52198 17884-17892 17397-17404 74673-74675 55441-55446 83965-83968 89769-89786 68357-68373 74075-74095 64552-64568 35300-35302 33316-33323 45081-45095 92830-92849 6849-6871 57392-57394
nlpgllnzhslrwwog M 20 40210-40224 83408-83412 88325-88348 17244-17267 80039-80063 72799-72814 77471-77482 80087-80105 84436-84450 35656-35661 93947-93965 27949-27965 44428-44431 52240-52257 15351-15359 58839-58860 28047-28049 61400-61413 15429-15448 35094-35101
alchaaysvghrcftx I 20 69224-69230 47683-47700 75839-75851 1769-1792 80930-80951 23194-23214 90463-90473 27268-27287 3003-3010 36655-36673 74429-74447 39083-39101 58340-58346 35534-35551 56480-56491 44224-44239 7970-7977 1179-1198 64140-64151 26078-26090
nsphqictjpqectvc M 20 34256-34261 9933-9953 62425-62443 19749-19760 93420-93431 15785-15804 34338-34358 44117-44125 72549-72553 35164-35167 59514-59522 79546-79568 21073-21077 20375-20394 91785-91795 32565-32569 13998-14011 84812-84826 61291-61300 84193-84212
kwhgitcqmwgaewji I 20 89224-89234 591-603 59062-59085 42286-42311 33373-33385 97472-97493 35990-35996 5836-5856 96433-96451 75713-75719 2693-2697 15896-15917 41072-41086 39266-39278 79574-79585 69940-69947 24735-24756 91156-91160 40230-40253 53318-53333
dvtpcdawocsxtger M 20 44639-44657 63929-63932 42472-42488 86251-86254 61513-61537 16278-16296 55266-55289 26989-27014 46201-46212 39915-39923 88810-88820 98054-98065 7557-7566 3220-3238 70176-70191 34036-34054 38867-38882 44047-44061 48849-48873 22747-22772
hudbbjhnyfqgizdf I 20 32279-32302 86461-86482 58458-58473 89600-89608 25936-25938 74837-74859 46411-46421 90948-90970 25328-25334 45438-45451 71339-71364 42756-42763 52751-52770 65757-65767 15999-16013 26624-26639 641-663 18476-18496 41238-41254 24690-24704
eehrdsskfuqhefqe M 20 30180-30184 290-307 21384-21399 80382-80398 14766-14777 49792-49816 83836-83842 88901-88924 2114-2117 93607-93625 99165-99177 20235-20252 85921-85923 94680-94695 28828-28834 96497-96507 14848-14856 14687-14695 48665-48667 97328-97353
pldhxwxebgpdaolf I 20 405-425 42333-42352 65526-65545 88462-88464 57888-57894 7797-7801 20305-20313 91515-91538 46018-46031 41168-41192 45842-45845 40779-40788 56713-56724 74054-74074 56602-56610 53380-53392 44098-44108 78279-78303 87213-87222 77855-77857
ythtnoogysrwfjlk M 20 57140-57148 27129-27141 65773-65778 60758-60769 66096-66106 71594-71610 72126-72143 31403-31428 39637-39652 87281-87296 38783-38794 81074-81098 63023-63031 56776-56798 47450-47464 30439-30449 73117-73136 96267-96287 21496-21520 12631-12648
pqkvrgccrhmevlwt I 20 63098-63105 67170-67180 2581-2583 49551-49571 97252-97277 76364-76368 60990-60992 2185-2191 58162-58186 69051-69066 19905-19924 72291-72300 67220-67228 27748-27754 68798-68818 4971-4975 61094-61105 67524-67528 33684-33689 40452-40463
wjqorladulvksohn M 20 38189-38201 61378-61384 12058-12061 97781-97787 32691-32702 29035-29053 24908-24931 35646-35648 60514-60521 94842-94864 10552-10566 52444-52456 88264-88269 66294-66317 53971-53981 83204-83218 79494-79513 30413-30419 55404-55423 17-23
dyyjwupnjprquihz I 20 71559-71572 38011-38026 81645-81654 87109-87118 48585-48591 71387-71390 1485-1506 21895-21898 97886-97905 82942-82966 23841-23862 32349-32363 49282-49305 8597-8617 86577-86595 74641-74649 50975-50982 82879-82898 17597-17620 23036-23056
ytmgfgyyaedxedrg M 20 27310-27315 76924-76937 16622-16635 27986-27999 82477-82481 26387-26403 22774-22779 52362-52369 6517-6529 19618-19627 72854-72856 11026-11047 88720-88738 58235-58255 57525-57537 57269-57279 41417-41431 96559-96577 12082-12088 41581-41592
ftqpdczaablayauv I 20 44474-44496 95120-95126 8895-8914 88142-88145 29978-29989 73466-73479 14628-14638 34407-34424 5867-5875 78905-78916 52689-52704 43545-43563 53469-53477 21308-21313 58518-58528 54933-54941 85146-85162 8936-8946 32364-32379 72957-72960
dfsdlitqbkffjjpq M 20 23743-23745 20517-20532 53446-53461 65099-65107 67345-67348 15467-15488 82992-83013 2661-2665 13085-13093 15705-15725 46235-46247 15075-15087 59537-59554 58719-58726 95984-95987 49268-49276 39585-39587 70248-70272 79949-79951 7495-7509
ghtnmytstklwvisx I 20 65347-65357 83715-83730 64881-64893 32714-32730 13827-13829 31382-31393 37979-37981 61872-61885 50039-50053 21326-21334 43348-43358 66562-66576 28712-28718 76660-76673 40527-40537 1534-1547 46960-46974 29136-29158 83284-83287 25702-25727
aknsdodqbkfgaybf M 20 84262-84269 28500-28523 330-351 29190-29198 92742-92748 78955-78971 12062-12078 45270-45292 84851-84874 71904-71920 61554-61559 52547-52557 53285-53289 86040-86052 46936-46957 81249-81267 14971-14983 7696-7707 62729-62736 43805-43810
ukfokusftgefouqz I 20 48728-48748 25099-25122 71816-71818 20929-20932 64509-64514 53951-53966 19840-19857 75262-75278 88964-88987 44391-44407 50284-50286 76048-76073 19506-19530 64228-64230 91111-91118 59377-59383 91836-91861 12860-12875 10120-10126 54714-54720
mlfvvrazytzndsje M 20 79892-79915 40048-40069 18166-18174 20949-20960 70652-70674 28244-28267 9790-9803 67107-67115 59712-59719 89213-89216 54161-54163 32932-32949 219-237 91164-91189 12695-12707 69735-69741 8329-8347 67252-67268 34781-34794 41217-41229
cwkfdfxeuxarupns I 20 65488-65503 78646-78663 95022-95042 49673-49693 53400-53404 10073-10075 7486-7488 21408-21415 5322-5329 63849-63856 93839-93853 50736-50742 7671-7682 65718-65722 4005-4030 42642-42665 92289-92296 71532-71547 42889-42898 68513-68521
wktuxbmzkxmbdpms M 20 79268-79273 5721-5743 31221-31232 72478-72495 92982-92991 4151-4156 68754-68762 50958-50964 40300-40316 42260-42282 60820-60835 17439-17460 54272-54282 53482-53506 78040-78065 53893-53903 93506-93524 30295-30297 32205-32209 90120-90144
hhjerdljfxhedlzo I 20 54574-54587 59152-59173 92708-92715 32221-32245 11204-11215 20021-20027 60897-60901 57198-57220 97920-97934 11555-11580 60295-60300 9503-9519 7627-7648 46633-46649 26917-26921 11350-11369 36319-36326 65630-65639 4545-4555 64535-64551
gjrvgfriyjgwhmjp M 20 37923-37929 59260-59271 25794-25804 57102-57109 794-800 27480-27505 17805-17810 43254-43264 97523-97544 42952-42959 85127-85129 50322-50347 70891-70905 42775-42797 55357-55366 45042-45062 8129-8152 89293-89314 51252-51261 67418-67440
tsxeqvyljeasjxis I 20 36708-36718 33624-33638 88388-88394 62964-62982 21256-21273 5678-5681 37832-37844 34602-34615 61346-61360 55158-55162 33427-33441 52304-52327 14092-14097 66-73 29109-29133 68650-68672 36285-36292 14933-14955 8450-8463 53688-53711
rsfwpubajohjehvw M 20 89731-89745 60694-60718 99227-99245 49426-49432 10092-10117 13201-13205 97669-97681 7984-8003 81610-81627 56383-56396 55667-55689 92879-92901 95819-95821 95754-95775 30855-30859 52654-52675 8389-8398 22427-22430 62611-62619 77047-77065
jscaegjppskmwglw I 20 54047-54066 91090-91095 57399-57420 93573-93578 6748-6756 73323-73339 5909-5928 54822-54833 7466-7473 85171-85188 90188-90205 51591-51597 87239-87242 74373-74394 94636-94638 1972-1997 22687-22702 21205-21229 19058-19078 8421-8425
sssocjylhkcpmuof M 20 14653-14669 92690-92698 65993-66016 28705-28710 48613-48629 93867-93872 63351-63358 43865-43888 22392-22407 43209-43219 14474-14487 32045-32057 61897-61903 36187-36192 1159-1165 10711-10728 98323-98348 57727-57751 65178-65203 72149-72169
atcqilkiavvalfdl I 20 77816-77828 13797-13819 51048-51067 37603-37623 62378-62384 45208-45216 28459-28473 6591-6611 61758-61763 34139-34149 59812-59832 75024-75041 90063-90087 53126-53141 51132-51135 28882-28887 81487-81511 36125-36139 97425-97436 99335-99339
wixjtylqynzxfqla M 20 30654-30662 56175-56196 86881-86897 54873-54897 74704-74727 30708-30710 75358-75365 64254-64279 42564-42580 48770-48787 18119-18140 62030-62041 95662-95679 86012-86025 1688-1712 82675-82697 77976-77985 2763-2780 183-208 46254-46260
xpwluqjjrpuaadfw I 20 5196-5204 76713-76733 67152-67156 518-520 29654-29679 14582-14596 92210-92219 65287-65307 56886-56900 78590-78598 70988-71003 65644-65650 28660-28662 58995-59000 89404-89412 84088-84106 92100-92113 22708-22711 76609-76627 70943-70968
sccrjbcyhwcdrlia M 20 95900-95919 82557-82567 87791-87810 92648-92664 60204-60220 30546-30548 82837-82851 38358-38365 2398-2408 37807-37829 91488-91502 17709-17724 87023-87038 69659-69666 11538-11541 17088-17110 43476-43478 67622-67630 43931-43944 52836-52847
wnjzqwkxptlgwzcp I 20 58003-58024 76551-76554 43170-43188 83250-83271 84804-84806 54975-54978 1959-1962 81847-81871 77881-77890 26703-26710 37982-38004 66352-66365 55580-55589 79119-79138 98950-98962 27426-27439 63468-63479 93815-93833 89075-89097 8522-8532
fawqlrjxfahmmleu M 20 29016-29031 79289-79314 4031-4042 86226-86244 92088-92095 89694-89710 84620-84636 25590-25595 55350-55352 67097-67101 57304-57307 66183-66190 84034-84044 78431-78437 70496-70520 61567-61572 33950-33952 91505-91511 5254-5264 29807-29820
qnbtzdxvqnengvcd I 20 11831-11843 28230-28242 22986-23003 83397-83402 81371-81385 53106-53117 24603-24609 310-323 10082-10085 44016-44039 12562-12584 32159-32181 73146-73161 22839-22852 30239-30264 82380-82385 25072-25080 8364-8388 96239-96262 25558-25566
azpzhzhnydwggtpm M 20 44964-44977 38122-38125 10155-10179 9061-9068 45764-45779 61632-61639 69708-69718 93914-93917 96114-96120 81237-81240 7209-7220 90280-90300 62115-62140 8037-8049 14778-14803 2640-2652 5045-5062 66223-66227 82043-82057 41352-41371
amcfzteicwwsehlq I 20 93678-93691 68251-68268 15040-15046 46347-46361 1594-1602 90652-90673 46696-46721 18830-18846 25214-25234 77992-77994 6033-6048 11307-11315 62996-63009 94726-94746 37521-37543 16870-16877 88933-88950 21336-21340 49781-49790 42081-42095
aheulwhjxddyrble M 20 73021-73034 7080-7088 55510-55519 4706-4713 38211-38234 53655-53667 58258-58272 84224-84237 83504-83519 5231-5240 27073-27075 54402-54408 96845-96867 45316-45326 70299-70306 99799-99806 74453-74463 32470-32473 16121-16131 48965-48970
dyoskfglkpbejcvg I 20 68022-68030 81543-81551 55837-55852 75151-75169 104-124 42138-42149 75071-75093 3716-3732 37872-37890 74295-74302 53824-53826 30713-30717 43534-43544 24195-24217 61048-61052 20207-20214 30099-30110 74631-74634 72497-72514 34757-34778
jpvdeaeekjfskvpr M 20 1617-1626 69308-69320 29521-29525 57559-57568 42398-42420 25251-25256 25914-25923 57053-57060 16475-16487 95995-96015 76425-76431 25994-26013 41743-41748 31128-31151 31857-31868 6468-6476 46000-46016 64626-64636 81889-81904 36747-36753
vmnnwwaaaseebdrx I 20 28351-28360 43326-43344 64074-64077 39726-39743 72562-72568 73580-73582 94240-94265 78980-78996 34011-34022 54109-54127 93348-93370 87872-87896 6800-6825 37437-37460 30385-30405 19769-19785 63901-63915 93750-93756 30758-30760 46908-46916
llhekmpdihqrgkbp M 20 54795-54808 80580-80583 11316-11332 61066-61076 29101-29107 68224-68243 42361-42381 73661-73670 84696-84703 23277-23295 13953-13958 91126-91131 29889-29903 24177-24191 66511-66530 40497-40513 56701-56705 99706-99709 52333-52341 28869-28877
avvpavdzfnixtnay I 20 91459-91472 56055-56072 63443-63464 79321-79340 57596-57607 48955-48963 14144-14163 78445-78451 93995-94009 97594-97603 10589-10593 63264-63279 95373-95378 12966-12978 95127-95142 12245-12266 57435-57458 77674-77691 7272-7293 7376-7394
llwdcaaljkenpvvy M 20 98844-98859 13535-13537 2159-2162 16984-16995 80461-80473 55609-55611 51187-51202 32121-32128 2128-2141 33447-33462 89069-89071 22314-22320 44153-44168 17970-17980 74013-74015 59592-59598 72179-72201 75928-75949 53672-53677 10529-10549
ujzbaikmlvqugwch I 20 79587-79591 15562-15587 49119-49135 25969-25979 30674-30682 39551-39569 78312-78332 39976-39987 30598-30616 35249-35269 88850-88853 73349-73365 28425-28433 44437-44447 27052-27059 73632-73654 3789-3801 22413-22417 72018-72029 35514-35518
oymdtvdvdbhocxxt M 20 22159-22184 34560-34579 59043-59050 50472-50487 59884-59909 33052-33069 96793-96809 35692-35717 88866-88879 37391-37405 72555-72561 67381-67385 30075-30090 44321-44333 18369-18382 37891-37910 26121-26139 22596-22616 3837-3844 35589-35605
fugwcksvjelluthk I 20 4327-4348 50088-50103 2804-2821 59804-59807 38623-38631 89916-89918 25662-25682 95315-95335 75608-75629 56903-56906 489-511 24133-24144 54841-54858 16067-16086 12401-12421 6216-6236 95695-95706 48155-48173 36037-36040 12439-12447
kluyafbaasfubexh M 20 8739-8751 16252-16259 42424-42444 41315-41317 16444-16469 24946-24965 40914-40928 29365-29386 33341-33348 16820-16822 64443-64445 12156-12176 5209-5211 37751-37757 43059-43064 21457-21481 65143-65149 82513-82538 83592-83614 26291-26302
ycxqsimpciebzxgd I 20 66706-66727 13298-13309 57238-57252 69635-69648 7223-7238 23086-23096 18383-18391 15060-15065 66808-66817 34735-34737 60776-60785 12777-12792 60481-60493 65725-65732 2025-2031 61452-61467 35317-35324 38470-38475 15251-15273 19105-19111
xaoweggqxtbrklab M 20 76291-76296 62910-62928 5128-5147 11485-11500 2838-2849 68841-68852 35720-35740 87053-87066 99109-99129 54912-54932 85738-85763 896-899 77539-77556 59216-59223 99346-99367 32507-32527 60976-60978 1743-1746 18221-18244 33413-33416
pmqwzzjjbldmixgv I 20 26574-26588 17119-17122 71840-71859 15112-15131 94968-94979 67896-67920 40386-40409 45150-45168 92913-92928 17299-17305 97628-97651 67233-67243 56968-56970 70827-70836 13674-13681 9658-9680 77201-77213 40793-40810 15761-15769 47915-47932
umbnhqkrezkclhug M 20 6172-6192 7321-7332 31038-31054 42099-42116 15729-15736 56427-56450 18818-18820 26796-26809 85194-85212 27165-27169 92562-92582 38551-38553 96872-96874 65902-65905 99505-99527 57919-57930 28726-28728 79607-79618 66610-66632 2325-2336
fhdgkqzpdbyoitfk I 20 35885-35903 98716-98728 70595-70613 13471-13478 36759-36761 54639-54652 95838-95854 41845-41870 33215-33240 95884-95888 428-444 85371-85395 5777-5789 76004-76008 71861-71867 10143-10153 3039-3044 21725-21745 10046-10053 55520-55522
efpazzekyfwfavxs M 20 54553-54572 82641-82659 13450-13464 39459-39465 83297-83310 55297-55301 51364-51375 40348-40350 98553-98569 12817-12829 4613-4623 95387-95401 41938-41963 4177-4202 6687-6689 62316-62337 19151-19165 49933-49954 32737-32760 80436-80440
yzrrnyqxlyshectk I 20 50175-50191 8270-8272 66599-66608 69093-69101 44605-44621 10222-10224 67562-67574 7933-7956 19970-19984 27557-27579 29413-29435 6287-6312 24662-24677 99960-99972 80331-80336 58947-58952 57686-57693 43586-43602 44554-44578 77453-77468
nkixvzhhexpgntbb M 20 79751-79753 57465-57489 264-278 79405-79413 53917-53919 17069-17081 45562-45578 45294-45299 55201-55206 21433-21440 97373-97396 12721-12728 17275-17296 72826-72841 7111-7131 86821-86832 54672-54690 6400-6406 14166-14168 34055-34067
qtqibkeukuwrxggw I 20 90529-90544 82497-82505 19675-19699 94420-94437 37183-37192 5377-5386 86136-86144 44710-44734 83098-83106 84141-84162 81432-81451 36942-36949 91642-91666 61484-61495 87549-87556 78392-78406 77175-77179 13689-13708 23766-23783 62836-62838
uzeqevqbntazkudk M 20 47504-47519 11757-11776 40680-40700 28099-28115 56108-56124 47015-47039 31262-31280 72233-72255 52722-52739 99091-99100 16800-16803 50205-50228 74650-74653 9089-9093 74894-74914 19000-19019 17172-17181 93209-93218 74196-74204 79024-79026
pimrzrjvoweohzps I 20 19359-19362 24219-24233 34475-34485 96541-96558 85259-85274 11384-11398 58305-58330 98803-98810 61827-61839 1528-1531 98595-98610 35075-35083 39598-39613 5440-5458 85056-85076 68586-68595 66236-66253 9970-9992 28680-28695 30994-31007
idwekjcjgzcwviaz M 20 6995-7002 21542-21559 18853-18863 21607-21616 90496-90504 56510-56525 68948-68971 74928-74943 86926-86935 22863-22886 33204-33207 62158-62175 5101-5103 90334-90353 25438-25452 12985-12994 40430-40446 32600-32604 19604-19616 34519-34535
bvrdsjrtovzzyhap I 20 53853-53863 64024-64037 69177-69195 52384-52390 13439-13442 16580-16586 26812-26833 6621-6628 56799-56819 63732-63735 43707-43718 68685-68709 28477-28492 39306-39314 53511-53520 38992-38995 30149-30172 23341-23365 12461-12469 69555-69557
kgznajjiaotebsjk M 20 87492-87514 68083-68091 25356-25380 47789-47810 79828-79846 42064-42074 87042-87046 83426-83429 19385-19393 72407-72419 37300-37321 22893-22913 31526-31544 98978-98988 19166-19173 14423-14441 69130-69144 92433-92447 1348-1350 74364-74370
noudkrfysdgargdf I 20 50442-50467 22019-22044 9910-9926 73277-73297 99544-99548 10386-10392 26238-26241 88990-89011 40521-40525 13290-13295 51003-51017 79032-79034 73683-73688 31969-31983 33831-33840 12337-12345 30841-30843 19112-19128 19929-19942 66118-66135
qbmabbgfmvxqyzoi M 20 81564-81578 15164-15187 84729-84742 14175-14192 97652-97661 2503-2528 22235-22242 38604-38611 49637-49650 26167-26187 92373-92377 98353-98370 34895-34908 97700-97709 80972-80994 94702-94721 39845-39850 44062-44087 82729-82738 94794-94815
vsrpkmgdkkhoctfk I 20 95476-95479 24338-24350 66923-66948 50561-50576 98139-98147 33011-33032 40634-40636 45894-45897 68911-68915 21400-21403 77927-77939 84273-84287 51475-51488 41820-41824 8765-8769 90831-90846 56745-56761 8916-8925 3914-3919 30289-30294
awpesoyyetrqikqp M 20 25456-25473 38262-38278 31898-31901 40819-40839 80608-80618 1131-1151 9549-9554 24430-24455 24544-24555 36866-36871 12115-12126 80499-80509 77441-77451 32083-32085 48474-48482 64311-64328 80516-80519 90156-90178 81712-81720 59477-59501
hfrzbcoxgmnsktfv I 20 76815-76821 68044-68065 95965-95981 2220-2239 80267-80286 31626-31628 79631-79650 57509-57519 36910-36935 45704-45725 87425-87435 78877-78880 63942-63958 89186-89208 31336-31344 16385-16393 71792-71795 5801-5807 75045-75063 49247-49253
zyrlfgtnbedjuwct M 20 73742-73755 47526-47548 46812-46831 52776-52789 52619-52637 950-954 11886-11905 35631-35634 86406-86426 63317-63324 69159-69170 33527-33542 46578-46592 85623-85627 89034-89056 10284-10296 3907-3911 70432-70443 34185-34197 96153-96177
kynzvzmmbmrhpuls I 20 86090-86109 49463-49477 38436-38449 52797-52799 15638-15649 51971-51977 42910-42921 90994-91014 17352-17375 79040-79047 94459-94475 23162-23172 24490-24506 16324-16337 86954-86966 44290-44311 66745-66759 2435-2448 23142-23153 39336-39345
hexcraejitqceuix M 20 24774-24799 19861-19865 56563-56582 79072-79086 74988-74999 80528-80534 53172-53178 54746-54757 5998-6001 14384-14393 60664-60668 97144-97167 9778-9780 47227-47245 51993-51995 89879-89904 62077-62098 80355-80369 33784-33803 34391-34402
nzfplulemdebohwl I 20 13159-13174 61437-61448 63815-63837 58125-58131 16761-16772 96823-96832 53059-53068 25629-25650 83811-83826 67645-67660 71261-71279 8551-8574 62739-62743 18684-18692 79229-79248 20072-20088 2753-2759 64988-65002 4677-4701 87686-87690
pblqpoaxqtzjcwxu M 20 1893-1900 9706-9730 14445-14448 9459-9471 86281-86298 55164-55169 56315-56320 62527-62530 88603-88625 65332-65335 36490-36502 81738-81746 74568-74572 46150-46160 63535-63546 84529-84531 29229-29232 80021-80035 67016-67030 93891-93905
tenolgjfooyjwsja I 20 93382-93387 94959-94966 18288-18299 70351-70367 95156-95170 6111-6119 49509-49529 91964-91983 21997-22005 37152-37166 35179-35191 83129-83145 73483-73494 16094-16105 24277-24288 33653-33669 18509-18524 74120-74125 84317-84330 13963-13978
bizmnvxqxsvqllwf M 20 28525-28532 29949-29963 37015-37034 7916-7926 37238-37247 51530-51550 3210-3213 70307-70313 22381-22389 75310-75324 18002-18013 55234-55238 51942-51958 63075-63085 58561-58568 65021-65029 94897-94918 70854-70876 8098-8115 61910-61923
bmorczorqlgqjezw I 20 59935-59949 38809-38816 40721-40730 11914-11937 65568-65593 87908-87923 22814-22818 49593-49618 92946-92958 62391-62402 93776-93781 702-724 96303-96317 51646-51651 28019-28041 82768-82780 79182-79192 2934-2940 74310-74330 92076-92082
zdqdjpnfqcqfouhl M 20 36229-36247 7058-7070 37938-37948 10967-10981 23815-23829 44818-44825 88493-88512 40373-40379 64582-64606 25273-25277 6239-6241 60259-60268 38939-38941 34088-34097 8966-8985 33258-33260 38384-38391 90446-90449 10939-10941 70538-70560
bzhyspptnrerxswg I 20 32953-32970 14906-14913 64810-64830 29336-29357 17479-17483 64733-64755 93646-93652 63640-63651 92995-93017 62680-62695 2170-2183 33110-33116 69381-69402 55790-55794 5489-5507 73209-73217 75691-75708 27700-27704 56377-56379 98534-98539
nnlmpngqdiygbono M 20 14288-14298 15144-15147 1609-1614 76953-76974 87481-87487 66895-66905 21032-21047 753-759 23105-23128 29578-29584 48045-48065 11190-11199 53205-53212 13420-13428 79521-79544 91332-91347 3183-3207 17936-17953 1934-1950 47832-47850
ducockvmluxueqlg I 20 67739-67756 55463-55484 93480-93502 20934-20946 80187-80200 95750-95752 5628-5637 93447-93462 49873-49880 29542-29556 33127-33139 18422-18447 50679-50689 59359-59361 20855-20880 96919-96938 92669-92685 50550-50555 85679-85683 73273-73276
coxdnzovvoszqqpa M 20 62273-62290 5747-5767 19325-19345 14023-14036 78781-78792 96997-97008 1549-1552 82930-82940 37640-37652 63614-63621 67142-67151 36812-36815 8399-8406 78668-78678 66155-66169 83333-83341 87711-87734 93267-93279 66265-66282 93317-93320
100
]]></test_input>
<test_output><![CDATA[DATA SET #1
radfsdoc M 1 1-38
DATA SET #2
tinyfile M 1 1-4
swapfile I 3 5-10 25-50 80-95
bigfile M 2 15-24 51-60
smallfile M 1 61-67
DATA SET #3
tinyfile M 1 1-4
swapfile I 3 5-10 25-50 80-95
smallfile M 1 11-17
bigfile M 1 51-69
DATA SET #4
fileaaa M 1 1-21
DATA SET #5
fawqlrjxfahmmleu M 1 1-206
aheulwhjxddyrble M 1 207-412
fhdgkqzpdbyoitfk I 20 428-444 3039-3044 5777-5789 10046-10053 10143-10153 13471-13478 21725-21745 33215-33240 35885-35903 36759-36761 41845-41870 54639-54652 55520-55522 70595-70613 71861-71867 76004-76008 85371-85395 95838-95854 95884-95888 98716-98728
cwkfdfxeuxarupns M 1 445-668
dfsdlitqbkffjjpq M 1 760-978
pblqpoaxqtzjcwxu M 1 979-1172
alchaaysvghrcftx I 20 1179-1198 1769-1792 3003-3010 7970-7977 23194-23214 26078-26090 27268-27287 35534-35551 36655-36673 39083-39101 44224-44239 47683-47700 56480-56491 58340-58346 64140-64151 69224-69230 74429-74447 75839-75851 80930-80951 90463-90473
wnjzqwkxptlgwzcp M 1 1199-1459
amcfzteicwwsehlq I 20 1594-1602 6033-6048 11307-11315 15040-15046 16870-16877 18830-18846 21336-21340 25214-25234 37521-37543 42081-42095 46347-46361 46696-46721 49781-49790 62996-63009 68251-68268 77992-77994 88933-88950 90652-90673 93678-93691 94726-94746
jscaegjppskmwglw I 20 1972-1997 5909-5928 6748-6756 7466-7473 8421-8425 19058-19078 21205-21229 22687-22702 51591-51597 54047-54066 54822-54833 57399-57420 73323-73339 74373-74394 85171-85188 87239-87242 90188-90205 91090-91095 93573-93578 94636-94638
noudkrfysdgargdf M 1 2153-2382
sccrjbcyhwcdrlia I 20 2398-2408 11538-11541 17088-17110 17709-17724 30546-30548 37807-37829 38358-38365 43476-43478 43931-43944 52836-52847 60204-60220 67622-67630 69659-69666 82557-82567 82837-82851 87023-87038 87791-87810 91488-91502 92648-92664 95900-95919
qbmabbgfmvxqyzoi I 20 2503-2528 14175-14192 15164-15187 22235-22242 26167-26187 34895-34908 38604-38611 39845-39850 44062-44087 49637-49650 80972-80994 81564-81578 82729-82738 84729-84742 92373-92377 94702-94721 94794-94815 97652-97661 97700-97709 98353-98370
rwprylskdzczvmkj M 1 2619-2870
vsrpkmgdkkhoctfk M 1 3045-3238
wpuqzlmldqcfnfmb I 20 3479-3502 10751-10770 12657-12677 17425-17433 23929-23932 24315-24332 27531-27534 27877-27895 30751-30755 32653-32665 34925-34939 35331-35353 35971-35982 37627-37629 49070-49076 51814-51838 52090-52109 58656-58675 62296-62306 81389-81407
dyhofjlnebhtukdr M 1 3503-3763
umbnhqkrezkclhug M 1 3912-4149
wktuxbmzkxmbdpms I 20 4151-4156 5721-5743 17439-17460 30295-30297 31221-31232 32205-32209 40300-40316 42260-42282 50958-50964 53482-53506 53893-53903 54272-54282 60820-60835 68754-68762 72478-72495 78040-78065 79268-79273 90120-90144 92982-92991 93506-93524
dyyjwupnjprquihz M 1 4349-4644
hfrzbcoxgmnsktfv M 1 4831-5089
vivnstvxlqvrsnau M 1 5212-5486
zdqdjpnfqcqfouhl M 1 5487-5692
wixjtylqynzxfqla M 1 6049-6373
bzhyspptnrerxswg M 1 6462-6705
vmnnwwaaaseebdrx I 20 6800-6825 19769-19785 28351-28360 30385-30405 30758-30760 34011-34022 37437-37460 39726-39743 43326-43344 46908-46916 54109-54127 63901-63915 64074-64077 72562-72568 73580-73582 78980-78996 87872-87896 93348-93370 93750-93756 94240-94265
nkixvzhhexpgntbb M 1 6826-7056
eehrdsskfuqhefqe M 1 7221-7463
xpwluqjjrpuaadfw M 1 7474-7711
awpesoyyetrqikqp M 1 7712-7959
kynzvzmmbmrhpuls M 1 7978-8239
oymdtvdvdbhocxxt M 1 8426-8732
avvpavdzfnixtnay M 1 8733-9021
uzeqevqbntazkudk I 20 9089-9093 11757-11776 16800-16803 17172-17181 19000-19019 28099-28115 31262-31280 40680-40700 47015-47039 47504-47519 50205-50228 52722-52739 56108-56124 72233-72255 74196-74204 74650-74653 74894-74914 79024-79026 93209-93218 99091-99100
yzrrnyqxlyshectk M 1 9094-9364
coxdnzovvoszqqpa M 1 9555-9785
bizmnvxqxsvqllwf M 1 9804-10043
bakrdcmedpjvdmla M 1 10346-10599
tsxeqvyljeasjxis M 1 10771-11042
llhekmpdihqrgkbp M 1 11316-11533
llwdcaaljkenpvvy M 1 11542-11746
azpzhzhnydwggtpm M 1 11777-12027
qtqibkeukuwrxggw M 1 12222-12489
sssocjylhkcpmuof M 1 12708-12989
nooitixdlhesppns M 1 13094-13370
exyniucnayxebzmk M 1 13479-13717
mazuvqptwfklbfqv M 1 13953-14172
hhjerdljfxhedlzo M 1 14299-14569
fugwcksvjelluthk M 1 14597-14876
atplbvnyknqjgeyt M 1 15188-15427
hexcraejitqceuix M 1 15428-15675
ducockvmluxueqlg M 1 15726-15979
olbstohtzjimbmnr M 1 15980-16248
ycxqsimpciebzxgd M 1 16249-16461
ujzbaikmlvqugwch M 1 16470-16717
nsphqictjpqectvc M 1 17182-17423
pldhxwxebgpdaolf M 1 17461-17707
mlfvvrazytzndsje M 1 17725-18003
bmorczorqlgqjezw M 1 18175-18442
qnbtzdxvqnengvcd M 1 18497-18778
aknsdodqbkfgaybf M 1 19079-19342
efpazzekyfwfavxs M 1 19346-19620
pmqwzzjjbldmixgv M 1 19786-20065
ytmgfgyyaedxedrg M 1 20066-20295
puwuavkqmmdepqbl M 1 20314-20612
hudbbjhnyfqgizdf M 1 20730-21034
wjqorladulvksohn M 1 21341-21579
gjrvgfriyjgwhmjp M 1 21746-22021
pqkvrgccrhmevlwt M 1 22022-22234
kluyafbaasfubexh M 1 22243-22495
zyrlfgtnbedjuwct M 1 22810-23077
jpvdeaeekjfskvpr M 1 23215-23443
bvrdsjrtovzzyhap M 1 23444-23678
mqhsubvbcpdoregq M 1 23933-24221
rsfwpubajohjehvw M 1 24333-24615
atcqilkiavvalfdl M 1 24616-24889
ukfokusftgefouqz M 1 24890-25148
ftqpdczaablayauv M 1 25235-25463
nnlmpngqdiygbono M 1 25474-25736
krajsaavjtmeetui M 1 25737-26012
ezpfrbtphwrfrsla M 1 26303-26553
kwhgitcqmwgaewji M 1 26746-27031
ghtnmytstklwvisx M 1 27032-27265
dyoskfglkpbejcvg M 1 27535-27779
tenolgjfooyjwsja M 1 28361-28608
rvsgqnajkzecwnpd M 1 28609-28877
nlpgllnzhslrwwog M 1 28878-29153
ythtnoogysrwfjlk M 1 29190-29493
zepgtyasbhsglyxt M 1 29494-29765
ccazuvjxjzakgvqk M 1 30761-31046
pimrzrjvoweohzps M 1 31345-31617
idwekjcjgzcwviaz M 1 34198-34446
nzfplulemdebohwl M 1 34967-35237
nsrcwyptdvtgbbuk M 1 36041-36351
ibzvjuijhxnsamre M 1 40410-40665
dvtpcdawocsxtger M 1 53507-53815
xaoweggqxtbrklab M 1 55795-56071
nflhdpjrekmvkkrb M 1 57585-57886
kgznajjiaotebsjk M 1 58727-58987
glllycvksxmqrkxk M 1 99689-99964
DATA SET #6
fawqlrjxfahmmleu M 1 1-206
aheulwhjxddyrble M 1 207-412
fhdgkqzpdbyoitfk I 20 428-444 3039-3044 5777-5789 10046-10053 10143-10153 13471-13478 21725-21745 33215-33240 35885-35903 36759-36761 41845-41870 54639-54652 55520-55522 70595-70613 71861-71867 76004-76008 85371-85395 95838-95854 95884-95888 98716-98728
cwkfdfxeuxarupns M 1 445-668
dfsdlitqbkffjjpq M 1 669-887
pblqpoaxqtzjcwxu M 1 888-1081
alchaaysvghrcftx I 20 1179-1198 1769-1792 3003-3010 7970-7977 23194-23214 26078-26090 27268-27287 35534-35551 36655-36673 39083-39101 44224-44239 47683-47700 56480-56491 58340-58346 64140-64151 69224-69230 74429-74447 75839-75851 80930-80951 90463-90473
wnjzqwkxptlgwzcp M 1 1199-1459
amcfzteicwwsehlq I 20 1594-1602 6033-6048 11307-11315 15040-15046 16870-16877 18830-18846 21336-21340 25214-25234 37521-37543 42081-42095 46347-46361 46696-46721 49781-49790 62996-63009 68251-68268 77992-77994 88933-88950 90652-90673 93678-93691 94726-94746
jscaegjppskmwglw I 20 1972-1997 5909-5928 6748-6756 7466-7473 8421-8425 19058-19078 21205-21229 22687-22702 51591-51597 54047-54066 54822-54833 57399-57420 73323-73339 74373-74394 85171-85188 87239-87242 90188-90205 91090-91095 93573-93578 94636-94638
noudkrfysdgargdf M 1 1998-2227
sccrjbcyhwcdrlia I 20 2398-2408 11538-11541 17088-17110 17709-17724 30546-30548 37807-37829 38358-38365 43476-43478 43931-43944 52836-52847 60204-60220 67622-67630 69659-69666 82557-82567 82837-82851 87023-87038 87791-87810 91488-91502 92648-92664 95900-95919
qbmabbgfmvxqyzoi I 20 2503-2528 14175-14192 15164-15187 22235-22242 26167-26187 34895-34908 38604-38611 39845-39850 44062-44087 49637-49650 80972-80994 81564-81578 82729-82738 84729-84742 92373-92377 94702-94721 94794-94815 97652-97661 97700-97709 98353-98370
rwprylskdzczvmkj M 1 2529-2780
vsrpkmgdkkhoctfk M 1 2781-2974
dyhofjlnebhtukdr M 1 3045-3305
wpuqzlmldqcfnfmb I 20 3479-3502 10751-10770 12657-12677 17425-17433 23929-23932 24315-24332 27531-27534 27877-27895 30751-30755 32653-32665 34925-34939 35331-35353 35971-35982 37627-37629 49070-49076 51814-51838 52090-52109 58656-58675 62296-62306 81389-81407
umbnhqkrezkclhug M 1 3503-3740
dyyjwupnjprquihz M 1 3741-4036
wktuxbmzkxmbdpms I 20 4151-4156 5721-5743 17439-17460 30295-30297 31221-31232 32205-32209 40300-40316 42260-42282 50958-50964 53482-53506 53893-53903 54272-54282 60820-60835 68754-68762 72478-72495 78040-78065 79268-79273 90120-90144 92982-92991 93506-93524
hfrzbcoxgmnsktfv M 1 4157-4415
vivnstvxlqvrsnau M 1 4416-4690
zdqdjpnfqcqfouhl M 1 4691-4896
wixjtylqynzxfqla M 1 4897-5221
llwdcaaljkenpvvy M 1 5222-5426
bzhyspptnrerxswg M 1 5427-5670
nkixvzhhexpgntbb M 1 6049-6279
eehrdsskfuqhefqe M 1 6280-6522
ycxqsimpciebzxgd M 1 6523-6735
vmnnwwaaaseebdrx I 20 6800-6825 19769-19785 28351-28360 30385-30405 30758-30760 34011-34022 37437-37460 39726-39743 43326-43344 46908-46916 54109-54127 63901-63915 64074-64077 72562-72568 73580-73582 78980-78996 87872-87896 93348-93370 93750-93756 94240-94265
xpwluqjjrpuaadfw M 1 6826-7063
pqkvrgccrhmevlwt M 1 7064-7276
awpesoyyetrqikqp M 1 7474-7721
coxdnzovvoszqqpa M 1 7722-7952
kynzvzmmbmrhpuls M 1 7978-8239
oymdtvdvdbhocxxt M 1 8426-8732
avvpavdzfnixtnay M 1 8733-9021
uzeqevqbntazkudk I 20 9089-9093 11757-11776 16800-16803 17172-17181 19000-19019 28099-28115 31262-31280 40680-40700 47015-47039 47504-47519 50205-50228 52722-52739 56108-56124 72233-72255 74196-74204 74650-74653 74894-74914 79024-79026 93209-93218 99091-99100
yzrrnyqxlyshectk M 1 9094-9364
bizmnvxqxsvqllwf M 1 9365-9604
bakrdcmedpjvdmla M 1 9605-9858
tsxeqvyljeasjxis M 1 10154-10425
llhekmpdihqrgkbp M 1 10426-10643
azpzhzhnydwggtpm M 1 10771-11021
qtqibkeukuwrxggw M 1 11022-11289
mazuvqptwfklbfqv M 1 11316-11535
exyniucnayxebzmk M 1 11777-12015
sssocjylhkcpmuof M 1 12016-12297
nooitixdlhesppns M 1 12298-12574
hhjerdljfxhedlzo M 1 12678-12948
atplbvnyknqjgeyt M 1 12949-13188
fugwcksvjelluthk M 1 13189-13468
hexcraejitqceuix M 1 13479-13726
ducockvmluxueqlg M 1 13727-13980
olbstohtzjimbmnr M 1 14193-14461
ujzbaikmlvqugwch M 1 14462-14709
nsphqictjpqectvc M 1 14710-14951
pldhxwxebgpdaolf M 1 15188-15434
mlfvvrazytzndsje M 1 15435-15713
bmorczorqlgqjezw M 1 15714-15981
qnbtzdxvqnengvcd M 1 15982-16263
aknsdodqbkfgaybf M 1 16264-16527
ytmgfgyyaedxedrg M 1 16528-16757
wjqorladulvksohn M 1 17182-17420
jpvdeaeekjfskvpr M 1 17461-17689
efpazzekyfwfavxs M 1 17725-17999
pmqwzzjjbldmixgv M 1 18000-18279
puwuavkqmmdepqbl M 1 18280-18578
bvrdsjrtovzzyhap M 1 18579-18813
hudbbjhnyfqgizdf M 1 19079-19383
gjrvgfriyjgwhmjp M 1 19384-19659
kluyafbaasfubexh M 1 19786-20038
zyrlfgtnbedjuwct M 1 20039-20306
mqhsubvbcpdoregq M 1 20307-20595
ftqpdczaablayauv M 1 20596-20824
ghtnmytstklwvisx M 1 20825-21058
rsfwpubajohjehvw M 1 21341-21623
atcqilkiavvalfdl M 1 21746-22019
ukfokusftgefouqz M 1 22243-22501
ezpfrbtphwrfrsla M 1 22703-22953
nnlmpngqdiygbono M 1 23215-23477
krajsaavjtmeetui M 1 23478-23753
kwhgitcqmwgaewji M 1 23933-24218
dyoskfglkpbejcvg M 1 24333-24577
tenolgjfooyjwsja M 1 24578-24825
rvsgqnajkzecwnpd M 1 24826-25094
nlpgllnzhslrwwog M 1 25235-25510
ythtnoogysrwfjlk M 1 25511-25814
idwekjcjgzcwviaz M 1 25815-26063
zepgtyasbhsglyxt M 1 26188-26459
ccazuvjxjzakgvqk M 1 26460-26745
pimrzrjvoweohzps M 1 26746-27018
nzfplulemdebohwl M 1 27535-27805
nsrcwyptdvtgbbuk M 1 28361-28671
ibzvjuijhxnsamre M 1 28672-28927
dvtpcdawocsxtger M 1 28928-29236
xaoweggqxtbrklab M 1 29237-29513
nflhdpjrekmvkkrb M 1 29514-29815
kgznajjiaotebsjk M 1 29816-30076
glllycvksxmqrkxk M 1 30761-31036
DATA SET #7
wjqorladulvksohn I 20 17-23 10552-10566 12058-12061 24908-24931 29035-29053 30413-30419 32691-32702 35646-35648 38189-38201 52444-52456 53971-53981 55404-55423 60514-60521 61378-61384 66294-66317 79494-79513 83204-83218 88264-88269 94842-94864 97781-97787
tsxeqvyljeasjxis I 20 66-73 5678-5681 8450-8463 14092-14097 14933-14955 21256-21273 29109-29133 33427-33441 33624-33638 34602-34615 36285-36292 36708-36718 37832-37844 52304-52327 53688-53711 55158-55162 61346-61360 62964-62982 68650-68672 88388-88394
dyoskfglkpbejcvg I 20 104-124 3716-3732 20207-20214 24195-24217 30099-30110 30713-30717 34757-34778 37872-37890 42138-42149 43534-43544 53824-53826 55837-55852 61048-61052 68022-68030 72497-72514 74295-74302 74631-74634 75071-75093 75151-75169 81543-81551
wixjtylqynzxfqla I 20 183-208 1688-1712 2763-2780 18119-18140 30654-30662 30708-30710 42564-42580 46254-46260 48770-48787 54873-54897 56175-56196 62030-62041 64254-64279 74704-74727 75358-75365 77976-77985 82675-82697 86012-86025 86881-86897 95662-95679
mlfvvrazytzndsje I 20 219-237 8329-8347 9790-9803 12695-12707 18166-18174 20949-20960 28244-28267 32932-32949 34781-34794 40048-40069 41217-41229 54161-54163 59712-59719 67107-67115 67252-67268 69735-69741 70652-70674 79892-79915 89213-89216 91164-91189
nkixvzhhexpgntbb I 20 264-278 6400-6406 7111-7131 12721-12728 14166-14168 17069-17081 17275-17296 21433-21440 34055-34067 45294-45299 45562-45578 53917-53919 54672-54690 55201-55206 57465-57489 72826-72841 79405-79413 79751-79753 86821-86832 97373-97396
eehrdsskfuqhefqe I 20 290-307 2114-2117 14687-14695 14766-14777 14848-14856 20235-20252 21384-21399 28828-28834 30180-30184 48665-48667 49792-49816 80382-80398 83836-83842 85921-85923 88901-88924 93607-93625 94680-94695 96497-96507 97328-97353 99165-99177
qnbtzdxvqnengvcd I 20 310-323 8364-8388 10082-10085 11831-11843 12562-12584 22839-22852 22986-23003 24603-24609 25072-25080 25558-25566 28230-28242 30239-30264 32159-32181 44016-44039 53106-53117 73146-73161 81371-81385 82380-82385 83397-83402 96239-96262
aknsdodqbkfgaybf I 20 330-351 7696-7707 12062-12078 14971-14983 28500-28523 29190-29198 43805-43810 45270-45292 46936-46957 52547-52557 53285-53289 61554-61559 62729-62736 71904-71920 78955-78971 81249-81267 84262-84269 84851-84874 86040-86052 92742-92748
pldhxwxebgpdaolf I 20 405-425 7797-7801 20305-20313 40779-40788 41168-41192 42333-42352 44098-44108 45842-45845 46018-46031 53380-53392 56602-56610 56713-56724 57888-57894 65526-65545 74054-74074 77855-77857 78279-78303 87213-87222 88462-88464 91515-91538
fhdgkqzpdbyoitfk I 20 428-444 3039-3044 5777-5789 10046-10053 10143-10153 13471-13478 21725-21745 33215-33240 35885-35903 36759-36761 41845-41870 54639-54652 55520-55522 70595-70613 71861-71867 76004-76008 85371-85395 95838-95854 95884-95888 98716-98728
fugwcksvjelluthk I 20 489-511 2804-2821 4327-4348 6216-6236 12401-12421 12439-12447 16067-16086 24133-24144 25662-25682 36037-36040 38623-38631 48155-48173 50088-50103 54841-54858 56903-56906 59804-59807 75608-75629 89916-89918 95315-95335 95695-95706
xpwluqjjrpuaadfw I 20 518-520 5196-5204 14582-14596 22708-22711 28660-28662 29654-29679 56886-56900 58995-59000 65287-65307 65644-65650 67152-67156 70943-70968 70988-71003 76609-76627 76713-76733 78590-78598 84088-84106 89404-89412 92100-92113 92210-92219
kwhgitcqmwgaewji I 20 591-603 2693-2697 5836-5856 15896-15917 24735-24756 33373-33385 35990-35996 39266-39278 40230-40253 41072-41086 42286-42311 53318-53333 59062-59085 69940-69947 75713-75719 79574-79585 89224-89234 91156-91160 96433-96451 97472-97493
hudbbjhnyfqgizdf I 20 641-663 15999-16013 18476-18496 24690-24704 25328-25334 25936-25938 26624-26639 32279-32302 41238-41254 42756-42763 45438-45451 46411-46421 52751-52770 58458-58473 65757-65767 71339-71364 74837-74859 86461-86482 89600-89608 90948-90970
bmorczorqlgqjezw I 20 702-724 2934-2940 11914-11937 22814-22818 28019-28041 38809-38816 40721-40730 49593-49618 51646-51651 59935-59949 62391-62402 65568-65593 74310-74330 79182-79192 82768-82780 87908-87923 92076-92082 92946-92958 93776-93781 96303-96317
nnlmpngqdiygbono I 20 753-759 1609-1614 1934-1950 3183-3207 11190-11199 13420-13428 14288-14298 15144-15147 17936-17953 21032-21047 23105-23128 29578-29584 47832-47850 48045-48065 53205-53212 66895-66905 76953-76974 79521-79544 87481-87487 91332-91347
gjrvgfriyjgwhmjp I 20 794-800 8129-8152 17805-17810 25794-25804 27480-27505 37923-37929 42775-42797 42952-42959 43254-43264 45042-45062 50322-50347 51252-51261 55357-55366 57102-57109 59260-59271 67418-67440 70891-70905 85127-85129 89293-89314 97523-97544
xaoweggqxtbrklab I 20 896-899 1743-1746 2838-2849 5128-5147 11485-11500 18221-18244 32507-32527 33413-33416 35720-35740 54912-54932 59216-59223 60976-60978 62910-62928 68841-68852 76291-76296 77539-77556 85738-85763 87053-87066 99109-99129 99346-99367
zyrlfgtnbedjuwct I 20 950-954 3907-3911 10284-10296 11886-11905 33527-33542 34185-34197 35631-35634 46578-46592 46812-46831 47526-47548 52619-52637 52776-52789 63317-63324 69159-69170 70432-70443 73742-73755 85623-85627 86406-86426 89034-89056 96153-96177
mqhsubvbcpdoregq I 20 1004-1029 4826-4830 7835-7850 11126-11150 22799-22809 23395-23417 35362-35381 57164-57178 61262-61273 64002-64011 65208-65213 67701-67722 68304-68318 73095-73099 77955-77975 82298-82310 82389-82407 86518-86523 91029-91052 93132-93145
awpesoyyetrqikqp I 20 1131-1151 9549-9554 12115-12126 24430-24455 24544-24555 25456-25473 31898-31901 32083-32085 36866-36871 38262-38278 40819-40839 48474-48482 59477-59501 64311-64328 77441-77451 80499-80509 80516-80519 80608-80618 81712-81720 90156-90178
sssocjylhkcpmuof I 20 1159-1165 10711-10728 14474-14487 14653-14669 22392-22407 28705-28710 32045-32057 36187-36192 43209-43219 43865-43888 48613-48629 57727-57751 61897-61903 63351-63358 65178-65203 65993-66016 72149-72169 92690-92698 93867-93872 98323-98348
alchaaysvghrcftx I 20 1179-1198 1769-1792 3003-3010 7970-7977 23194-23214 26078-26090 27268-27287 35534-35551 36655-36673 39083-39101 44224-44239 47683-47700 56480-56491 58340-58346 64140-64151 69224-69230 74429-74447 75839-75851 80930-80951 90463-90473
kgznajjiaotebsjk I 20 1348-1350 14423-14441 19166-19173 19385-19393 22893-22913 25356-25380 31526-31544 37300-37321 42064-42074 47789-47810 68083-68091 69130-69144 72407-72419 74364-74370 79828-79846 83426-83429 87042-87046 87492-87514 92433-92447 98978-98988
dyyjwupnjprquihz I 20 1485-1506 8597-8617 17597-17620 21895-21898 23036-23056 23841-23862 32349-32363 38011-38026 48585-48591 49282-49305 50975-50982 71387-71390 71559-71572 74641-74649 81645-81654 82879-82898 82942-82966 86577-86595 87109-87118 97886-97905
pimrzrjvoweohzps I 20 1528-1531 5440-5458 9970-9992 11384-11398 19359-19362 24219-24233 28680-28695 30994-31007 34475-34485 35075-35083 39598-39613 58305-58330 61827-61839 66236-66253 68586-68595 85056-85076 85259-85274 96541-96558 98595-98610 98803-98810
ghtnmytstklwvisx I 20 1534-1547 13827-13829 21326-21334 25702-25727 28712-28718 29136-29158 31382-31393 32714-32730 37979-37981 40527-40537 43348-43358 46960-46974 50039-50053 61872-61885 64881-64893 65347-65357 66562-66576 76660-76673 83284-83287 83715-83730
coxdnzovvoszqqpa I 20 1549-1552 5747-5767 8399-8406 14023-14036 19325-19345 36812-36815 37640-37652 62273-62290 63614-63621 66155-66169 66265-66282 67142-67151 78668-78678 78781-78792 82930-82940 83333-83341 87711-87734 93267-93279 93317-93320 96997-97008
ezpfrbtphwrfrsla I 20 1559-1581 2242-2252 2461-2482 3128-3143 5295-5317 10495-10505 19897-19902 25850-25874 30907-30910 39381-39385 46068-46080 51554-51556 51862-51874 55890-55894 65803-65818 71871-71888 89435-89441 89984-90008 90055-90062 99616-99631
amcfzteicwwsehlq I 20 1594-1602 6033-6048 11307-11315 15040-15046 16870-16877 18830-18846 21336-21340 25214-25234 37521-37543 42081-42095 46347-46361 46696-46721 49781-49790 62996-63009 68251-68268 77992-77994 88933-88950 90652-90673 93678-93691 94726-94746
jpvdeaeekjfskvpr I 20 1617-1626 6468-6476 16475-16487 25251-25256 25914-25923 25994-26013 29521-29525 31128-31151 31857-31868 36747-36753 41743-41748 42398-42420 46000-46016 57053-57060 57559-57568 64626-64636 69308-69320 76425-76431 81889-81904 95995-96015
pblqpoaxqtzjcwxu I 20 1893-1900 9459-9471 9706-9730 14445-14448 29229-29232 36490-36502 46150-46160 55164-55169 56315-56320 62527-62530 63535-63546 65332-65335 67016-67030 74568-74572 80021-80035 81738-81746 84529-84531 86281-86298 88603-88625 93891-93905
wnjzqwkxptlgwzcp I 20 1959-1962 8522-8532 26703-26710 27426-27439 37982-38004 43170-43188 54975-54978 55580-55589 58003-58024 63468-63479 66352-66365 76551-76554 77881-77890 79119-79138 81847-81871 83250-83271 84804-84806 89075-89097 93815-93833 98950-98962
jscaegjppskmwglw I 20 1972-1997 5909-5928 6748-6756 7466-7473 8421-8425 19058-19078 21205-21229 22687-22702 51591-51597 54047-54066 54822-54833 57399-57420 73323-73339 74373-74394 85171-85188 87239-87242 90188-90205 91090-91095 93573-93578 94636-94638
ycxqsimpciebzxgd I 20 2025-2031 7223-7238 12777-12792 13298-13309 15060-15065 15251-15273 18383-18391 19105-19111 23086-23096 34735-34737 35317-35324 38470-38475 57238-57252 60481-60493 60776-60785 61452-61467 65725-65732 66706-66727 66808-66817 69635-69648
llwdcaaljkenpvvy I 20 2128-2141 2159-2162 10529-10549 13535-13537 16984-16995 17970-17980 22314-22320 32121-32128 33447-33462 44153-44168 51187-51202 53672-53677 55609-55611 59592-59598 72179-72201 74013-74015 75928-75949 80461-80473 89069-89071 98844-98859
olbstohtzjimbmnr I 20 2150-2152 13068-13077 16587-16599 17129-17153 20722-20729 25948-25951 34962-34966 41150-41158 44979-44991 46517-46538 52115-52135 52897-52921 58061-58072 61619-61631 64172-64196 64404-64414 69004-69018 74162-74187 85008-85010 89790-89814
bzhyspptnrerxswg I 20 2170-2183 5489-5507 14906-14913 17479-17483 27700-27704 29336-29357 32953-32970 33110-33116 55790-55794 56377-56379 62680-62695 63640-63651 64733-64755 64810-64830 69381-69402 73209-73217 75691-75708 92995-93017 93646-93652 98534-98539
pqkvrgccrhmevlwt I 20 2185-2191 2581-2583 4971-4975 19905-19924 27748-27754 33684-33689 40452-40463 49551-49571 58162-58186 60990-60992 61094-61105 63098-63105 67170-67180 67220-67228 67524-67528 68798-68818 69051-69066 72291-72300 76364-76368 97252-97277
hfrzbcoxgmnsktfv I 20 2220-2239 5801-5807 16385-16393 31336-31344 31626-31628 36910-36935 45704-45725 49247-49253 57509-57519 63942-63958 68044-68065 71792-71795 75045-75063 76815-76821 78877-78880 79631-79650 80267-80286 87425-87435 89186-89208 95965-95981
umbnhqkrezkclhug I 20 2325-2336 6172-6192 7321-7332 15729-15736 18818-18820 26796-26809 27165-27169 28726-28728 31038-31054 38551-38553 42099-42116 56427-56450 57919-57930 65902-65905 66610-66632 79607-79618 85194-85212 92562-92582 96872-96874 99505-99527
sccrjbcyhwcdrlia I 20 2398-2408 11538-11541 17088-17110 17709-17724 30546-30548 37807-37829 38358-38365 43476-43478 43931-43944 52836-52847 60204-60220 67622-67630 69659-69666 82557-82567 82837-82851 87023-87038 87791-87810 91488-91502 92648-92664 95900-95919
kynzvzmmbmrhpuls I 20 2435-2448 15638-15649 16324-16337 17352-17375 23142-23153 23162-23172 24490-24506 38436-38449 39336-39345 42910-42921 44290-44311 49463-49477 51971-51977 52797-52799 66745-66759 79040-79047 86090-86109 86954-86966 90994-91014 94459-94475
qbmabbgfmvxqyzoi I 20 2503-2528 14175-14192 15164-15187 22235-22242 26167-26187 34895-34908 38604-38611 39845-39850 44062-44087 49637-49650 80972-80994 81564-81578 82729-82738 84729-84742 92373-92377 94702-94721 94794-94815 97652-97661 97700-97709 98353-98370
atplbvnyknqjgeyt I 20 2593-2618 5584-5590 7543-7548 10335-10345 11237-11256 11502-11508 27775-27791 29688-29704 41000-41012 42816-42818 45068-45076 48101-48113 51081-51091 60146-60149 61204-61212 64470-64487 75195-75220 88632-88645 93237-93252 93727-93738
nooitixdlhesppns I 20 2628-2631 5594-5597 15205-15213 16200-16220 16829-16853 25816-25826 26724-26745 32777-32790 36542-36562 42150-42166 43961-43976 48878-48885 50713-50735 51507-51526 67052-67062 73778-73798 81057-81067 85099-85117 94775-94785 96755-96762
azpzhzhnydwggtpm I 20 2640-2652 5045-5062 7209-7220 8037-8049 9061-9068 10155-10179 14778-14803 38122-38125 41352-41371 44964-44977 45764-45779 61632-61639 62115-62140 66223-66227 69708-69718 81237-81240 82043-82057 90280-90300 93914-93917 96114-96120
dfsdlitqbkffjjpq I 20 2661-2665 7495-7509 13085-13093 15075-15087 15467-15488 15705-15725 20517-20532 23743-23745 39585-39587 46235-46247 49268-49276 53446-53461 58719-58726 59537-59554 65099-65107 67345-67348 70248-70272 79949-79951 82992-83013 95984-95987
ibzvjuijhxnsamre I 20 2673-2689 8488-8495 12268-12291 14204-14224 19708-19718 33911-33922 36407-36420 40009-40034 42823-42836 45925-45944 48443-48449 49978-49985 60949-60951 76865-76878 79358-79374 82341-82366 84371-84375 86762-86767 93396-93408 99215-99223
nzfplulemdebohwl I 20 2753-2759 4677-4701 8551-8574 13159-13174 16761-16772 18684-18692 20072-20088 25629-25650 53059-53068 58125-58131 61437-61448 62739-62743 63815-63837 64988-65002 67645-67660 71261-71279 79229-79248 83811-83826 87686-87690 96823-96832
dyhofjlnebhtukdr I 20 2855-2867 24616-24624 26148-26160 26368-26376 28193-28209 30777-30781 31467-31488 35906-35918 39350-39360 45688-45697 49201-49224 54700-54711 63402-63427 68823-68834 74343-74358 86707-86718 88752-88765 93692-93698 94568-94587 99651-99665
bizmnvxqxsvqllwf I 20 3210-3213 7916-7926 8098-8115 18002-18013 22381-22389 28525-28532 29949-29963 37015-37034 37238-37247 51530-51550 51942-51958 55234-55238 58561-58568 61910-61923 63075-63085 65021-65029 70307-70313 70854-70876 75310-75324 94897-94918
dvtpcdawocsxtger I 20 3220-3238 7557-7566 16278-16296 22747-22772 26989-27014 34036-34054 38867-38882 39915-39923 42472-42488 44047-44061 44639-44657 46201-46212 48849-48873 55266-55289 61513-61537 63929-63932 70176-70191 86251-86254 88810-88820 98054-98065
wpuqzlmldqcfnfmb I 20 3479-3502 10751-10770 12657-12677 17425-17433 23929-23932 24315-24332 27531-27534 27877-27895 30751-30755 32653-32665 34925-34939 35331-35353 35971-35982 37627-37629 49070-49076 51814-51838 52090-52109 58656-58675 62296-62306 81389-81407
glllycvksxmqrkxk I 20 3685-3704 4775-4779 22435-22460 26477-26483 34460-34474 35106-35118 37775-37797 42231-42237 44454-44461 45180-45196 55498-55500 75745-75768 78239-78263 83155-83174 85516-85531 87403-87418 90555-90579 92771-92775 95806-95817 99681-99688
exyniucnayxebzmk I 20 3767-3774 5951-5969 11671-11688 18080-18092 22476-22483 22617-22625 26196-26198 39744-39756 43085-43108 43689-43703 48560-48568 49377-49387 49698-49717 60106-60119 61592-61604 64937-64939 71761-71778 79943-79946 81766-81782 86358-86376
ujzbaikmlvqugwch I 20 3789-3801 15562-15587 22413-22417 25969-25979 27052-27059 28425-28433 30598-30616 30674-30682 35249-35269 35514-35518 39551-39569 39976-39987 44437-44447 49119-49135 72018-72029 73349-73365 73632-73654 78312-78332 79587-79591 88850-88853
oymdtvdvdbhocxxt I 20 3837-3844 18369-18382 22159-22184 22596-22616 26121-26139 30075-30090 33052-33069 34560-34579 35589-35605 35692-35717 37391-37405 37891-37910 44321-44333 50472-50487 59043-59050 59884-59909 67381-67385 72555-72561 88866-88879 96793-96809
vsrpkmgdkkhoctfk I 20 3914-3919 8765-8769 8916-8925 21400-21403 24338-24350 30289-30294 33011-33032 40634-40636 41820-41824 45894-45897 50561-50576 51475-51488 56745-56761 66923-66948 68911-68915 77927-77939 84273-84287 90831-90846 95476-95479 98139-98147
cwkfdfxeuxarupns I 20 4005-4030 5322-5329 7486-7488 7671-7682 10073-10075 21408-21415 42642-42665 42889-42898 49673-49693 50736-50742 53400-53404 63849-63856 65488-65503 65718-65722 68513-68521 71532-71547 78646-78663 92289-92296 93839-93853 95022-95042
fawqlrjxfahmmleu I 20 4031-4042 5254-5264 25590-25595 29016-29031 29807-29820 33950-33952 55350-55352 57304-57307 61567-61572 66183-66190 67097-67101 70496-70520 78431-78437 79289-79314 84034-84044 84620-84636 86226-86244 89694-89710 91505-91511 92088-92095
wktuxbmzkxmbdpms I 20 4151-4156 5721-5743 17439-17460 30295-30297 31221-31232 32205-32209 40300-40316 42260-42282 50958-50964 53482-53506 53893-53903 54272-54282 60820-60835 68754-68762 72478-72495 78040-78065 79268-79273 90120-90144 92982-92991 93506-93524
efpazzekyfwfavxs I 20 4177-4202 4613-4623 6687-6689 12817-12829 13450-13464 19151-19165 32737-32760 39459-39465 40348-40350 41938-41963 49933-49954 51364-51375 54553-54572 55297-55301 62316-62337 80436-80440 82641-82659 83297-83310 95387-95401 98553-98569
vivnstvxlqvrsnau I 20 4214-4226 12202-12221 15331-15339 24271-24276 25049-25051 32425-32450 35456-35464 41455-41461 44367-44373 49230-49243 53982-54002 59918-59931 62002-62016 64384-64402 64428-64435 70148-70168 87981-88005 89623-89633 92595-92616 94182-94205
nflhdpjrekmvkkrb I 20 4367-4386 9763-9771 10599-10623 12995-13018 13620-13645 17390-17395 23895-23917 30116-30141 31731-31753 38256-38261 48140-48145 70017-70021 73956-73959 74542-74560 75113-75123 79692-79698 83775-83796 87182-87207 93219-93232 98113-98131
hhjerdljfxhedlzo I 20 4545-4555 7627-7648 9503-9519 11204-11215 11350-11369 11555-11580 20021-20027 26917-26921 32221-32245 36319-36326 46633-46649 54574-54587 57198-57220 59152-59173 60295-60300 60897-60901 64535-64551 65630-65639 92708-92715 97920-97934
aheulwhjxddyrble I 20 4706-4713 5231-5240 7080-7088 16121-16131 27073-27075 32470-32473 38211-38234 45316-45326 48965-48970 53655-53667 54402-54408 55510-55519 58258-58272 70299-70306 73021-73034 74453-74463 83504-83519 84224-84237 96845-96867 99799-99806
idwekjcjgzcwviaz I 20 5101-5103 6995-7002 12985-12994 18853-18863 19604-19616 21542-21559 21607-21616 22863-22886 25438-25452 32600-32604 33204-33207 34519-34535 40430-40446 56510-56525 62158-62175 68948-68971 74928-74943 86926-86935 90334-90353 90496-90504
kluyafbaasfubexh I 20 5209-5211 8739-8751 12156-12176 16252-16259 16444-16469 16820-16822 21457-21481 24946-24965 26291-26302 29365-29386 33341-33348 37751-37757 40914-40928 41315-41317 42424-42444 43059-43064 64443-64445 65143-65149 82513-82538 83592-83614
qtqibkeukuwrxggw I 20 5377-5386 13689-13708 19675-19699 23766-23783 36942-36949 37183-37192 44710-44734 61484-61495 62836-62838 77175-77179 78392-78406 81432-81451 82497-82505 83098-83106 84141-84162 86136-86144 87549-87556 90529-90544 91642-91666 94420-94437
rwprylskdzczvmkj I 20 5543-5561 10801-10821 17324-17333 20260-20274 23433-23455 33149-33152 36822-36846 39912-39914 42610-42618 42670-42695 46617-46628 53302-53315 56931-56933 57580-57584 60924-60939 67830-67834 76279-76284 83734-83752 94606-94615 95275-95300
ducockvmluxueqlg I 20 5628-5637 18422-18447 20855-20880 20934-20946 29542-29556 33127-33139 49873-49880 50550-50555 50679-50689 55463-55484 59359-59361 67739-67756 73273-73276 80187-80200 85679-85683 92669-92685 93447-93462 93480-93502 95750-95752 96919-96938
puwuavkqmmdepqbl I 20 5688-5707 6885-6910 29853-29857 37096-37112 38737-38755 40072-40074 41296-41304 43614-43638 46223-46233 47064-47080 55377-55401 58090-58105 60079-60103 63959-63982 65395-65415 74966-74974 83360-83371 91559-91579 93299-93304 93528-93534
ftqpdczaablayauv I 20 5867-5875 8895-8914 8936-8946 14628-14638 21308-21313 29978-29989 32364-32379 34407-34424 43545-43563 44474-44496 52689-52704 53469-53477 54933-54941 58518-58528 72957-72960 73466-73479 78905-78916 85146-85162 88142-88145 95120-95126
hexcraejitqceuix I 20 5998-6001 9778-9780 14384-14393 19861-19865 24774-24799 33784-33803 34391-34402 47227-47245 51993-51995 53172-53178 54746-54757 56563-56582 60664-60668 62077-62098 74988-74999 79072-79086 80355-80369 80528-80534 89879-89904 97144-97167
nsrcwyptdvtgbbuk I 20 6014-6022 7877-7902 11951-11963 15843-15863 16499-16508 20223-20227 22336-22359 24011-24025 27411-27424 31319-31323 38764-38779 40265-40290 54522-54525 64681-64705 65679-65704 68444-68460 83441-83463 83937-83951 90379-90403 96699-96709
tenolgjfooyjwsja I 20 6111-6119 13963-13978 16094-16105 18288-18299 18509-18524 21997-22005 24277-24288 33653-33669 35179-35191 37152-37166 49509-49529 70351-70367 73483-73494 74120-74125 83129-83145 84317-84330 91964-91983 93382-93387 94959-94966 95156-95170
rvsgqnajkzecwnpd I 20 6152-6161 7685-7690 15221-15241 15880-15890 20429-20445 20662-20687 24988-24995 26254-26270 32570-32585 35824-35841 51435-51460 61701-61706 66442-66451 67512-67523 67723-67738 74471-74484 76328-76333 82198-82204 86054-86071 98645-98667
zdqdjpnfqcqfouhl I 20 6239-6241 7058-7070 8966-8985 10939-10941 10967-10981 23815-23829 25273-25277 33258-33260 34088-34097 36229-36247 37938-37948 38384-38391 38939-38941 40373-40379 44818-44825 60259-60268 64582-64606 70538-70560 88493-88512 90446-90449
yzrrnyqxlyshectk I 20 6287-6312 7933-7956 8270-8272 10222-10224 19970-19984 24662-24677 27557-27579 29413-29435 43586-43602 44554-44578 44605-44621 50175-50191 57686-57693 58947-58952 66599-66608 67562-67574 69093-69101 77453-77468 80331-80336 99960-99972
bakrdcmedpjvdmla I 20 6449-6461 18583-18594 22135-22148 23225-23234 28290-28296 30479-30503 36978-36987 42033-42058 46781-46800 53636-53650 53871-53876 62546-62570 69335-69339 80293-80297 85839-85862 86780-86783 89373-89378 94998-95010 95429-95453 98075-98082
ytmgfgyyaedxedrg I 20 6517-6529 11026-11047 12082-12088 16622-16635 19618-19627 22774-22779 26387-26403 27310-27315 27986-27999 41417-41431 41581-41592 52362-52369 57269-57279 57525-57537 58235-58255 72854-72856 76924-76937 82477-82481 88720-88738 96559-96577
atcqilkiavvalfdl I 20 6591-6611 13797-13819 28459-28473 28882-28887 34139-34149 36125-36139 37603-37623 45208-45216 51048-51067 51132-51135 53126-53141 59812-59832 61758-61763 62378-62384 75024-75041 77816-77828 81487-81511 90063-90087 97425-97436 99335-99339
bvrdsjrtovzzyhap I 20 6621-6628 12461-12469 13439-13442 16580-16586 23341-23365 26812-26833 28477-28492 30149-30172 38992-38995 39306-39314 43707-43718 52384-52390 53511-53520 53853-53863 56799-56819 63732-63735 64024-64037 68685-68709 69177-69195 69555-69557
vmnnwwaaaseebdrx I 20 6800-6825 19769-19785 28351-28360 30385-30405 30758-30760 34011-34022 37437-37460 39726-39743 43326-43344 46908-46916 54109-54127 63901-63915 64074-64077 72562-72568 73580-73582 78980-78996 87872-87896 93348-93370 93750-93756 94240-94265
mazuvqptwfklbfqv I 20 6849-6871 17397-17404 17884-17892 27083-27086 28549-28560 33316-33323 35300-35302 45081-45095 52181-52198 55441-55446 57392-57394 63555-63570 64552-64568 68357-68373 74075-74095 74673-74675 83965-83968 87617-87630 89769-89786 92830-92849
zepgtyasbhsglyxt I 20 6940-6961 18248-18273 31765-31784 38568-38579 43222-43231 45980-45984 46334-46342 49725-49736 50596-50612 53722-53729 56657-56676 58732-58754 62885-62893 69028-69039 71443-71451 75409-75424 76240-76261 78231-78238 78498-78519 82827-82835
avvpavdzfnixtnay I 20 7272-7293 7376-7394 10589-10593 12245-12266 12966-12978 14144-14163 48955-48963 56055-56072 57435-57458 57596-57607 63264-63279 63443-63464 77674-77691 78445-78451 79321-79340 91459-91472 93995-94009 95127-95142 95373-95378 97594-97603
rsfwpubajohjehvw I 20 7984-8003 8389-8398 10092-10117 13201-13205 22427-22430 30855-30859 49426-49432 52654-52675 55667-55689 56383-56396 60694-60718 62611-62619 77047-77065 81610-81627 89731-89745 92879-92901 95754-95775 95819-95821 97669-97681 99227-99245
uzeqevqbntazkudk I 20 9089-9093 11757-11776 16800-16803 17172-17181 19000-19019 28099-28115 31262-31280 40680-40700 47015-47039 47504-47519 50205-50228 52722-52739 56108-56124 72233-72255 74196-74204 74650-74653 74894-74914 79024-79026 93209-93218 99091-99100
pmqwzzjjbldmixgv I 20 9658-9680 13674-13681 15112-15131 15761-15769 17119-17122 17299-17305 26574-26588 40386-40409 40793-40810 45150-45168 47915-47932 56968-56970 67233-67243 67896-67920 70827-70836 71840-71859 77201-77213 92913-92928 94968-94979 97628-97651
noudkrfysdgargdf I 20 9910-9926 10386-10392 12337-12345 13290-13295 19112-19128 19929-19942 22019-22044 26238-26241 30841-30843 31969-31983 33831-33840 40521-40525 50442-50467 51003-51017 66118-66135 73277-73297 73683-73688 79032-79034 88990-89011 99544-99548
nsphqictjpqectvc I 20 9933-9953 13998-14011 15785-15804 19749-19760 20375-20394 21073-21077 32565-32569 34256-34261 34338-34358 35164-35167 44117-44125 59514-59522 61291-61300 62425-62443 72549-72553 79546-79568 84193-84212 84812-84826 91785-91795 93420-93431
ukfokusftgefouqz I 20 10120-10126 12860-12875 19506-19530 19840-19857 20929-20932 25099-25122 44391-44407 48728-48748 50284-50286 53951-53966 54714-54720 59377-59383 64228-64230 64509-64514 71816-71818 75262-75278 76048-76073 88964-88987 91111-91118 91836-91861
llhekmpdihqrgkbp I 20 11316-11332 13953-13958 23277-23295 24177-24191 28869-28877 29101-29107 29889-29903 40497-40513 42361-42381 52333-52341 54795-54808 56701-56705 61066-61076 66511-66530 68224-68243 73661-73670 80580-80583 84696-84703 91126-91131 99706-99709
ythtnoogysrwfjlk I 20 12631-12648 21496-21520 27129-27141 30439-30449 31403-31428 38783-38794 39637-39652 47450-47464 56776-56798 57140-57148 60758-60769 63023-63031 65773-65778 66096-66106 71594-71610 72126-72143 73117-73136 81074-81098 87281-87296 96267-96287
krajsaavjtmeetui I 20 13373-13388 14822-14825 19410-19412 19649-19660 20795-20819 23530-23555 27150-27155 28319-28344 32845-32869 36872-36881 44756-44762 46116-46126 55002-55011 74256-74281 75876-75887 77016-77031 77069-77085 78818-78827 80134-80146 97559-97578
nlpgllnzhslrwwog I 20 15351-15359 15429-15448 17244-17267 27949-27965 28047-28049 35094-35101 35656-35661 40210-40224 44428-44431 52240-52257 58839-58860 61400-61413 72799-72814 77471-77482 80039-80063 80087-80105 83408-83412 84436-84450 88325-88348 93947-93965
ccazuvjxjzakgvqk I 20 15956-15976 19541-19564 21124-21132 29531-29541 34686-34710 36970-36973 38723-38725 47869-47877 48998-49010 50839-50844 59558-59578 60401-60419 71136-71153 76097-76114 80220-80240 83220-83241 87088-87095 90228-90249 92959-92977 98756-98767
DATA SET #8
tsxeqvyljeasjxis I 20 66-73 5678-5681 8450-8463 14092-14097 14933-14955 21256-21273 29109-29133 33427-33441 33624-33638 34602-34615 36285-36292 36708-36718 37832-37844 52304-52327 53688-53711 55158-55162 61346-61360 62964-62982 68650-68672 88388-88394
dyoskfglkpbejcvg I 20 104-124 3716-3732 20207-20214 24195-24217 30099-30110 30713-30717 34757-34778 37872-37890 42138-42149 43534-43544 53824-53826 55837-55852 61048-61052 68022-68030 72497-72514 74295-74302 74631-74634 75071-75093 75151-75169 81543-81551
mlfvvrazytzndsje M 20 219-237 8329-8347 9790-9803 12695-12707 18166-18174 20949-20960 28244-28267 32932-32949 34781-34794 40048-40069 41217-41229 54161-54163 59712-59719 67107-67115 67252-67268 69735-69741 70652-70674 79892-79915 89213-89216 91164-91189
eehrdsskfuqhefqe M 20 290-307 2114-2117 14687-14695 14766-14777 14848-14856 20235-20252 21384-21399 28828-28834 30180-30184 48665-48667 49792-49816 80382-80398 83836-83842 85921-85923 88901-88924 93607-93625 94680-94695 96497-96507 97328-97353 99165-99177
qnbtzdxvqnengvcd I 20 310-323 8364-8388 10082-10085 11831-11843 12562-12584 22839-22852 22986-23003 24603-24609 25072-25080 25558-25566 28230-28242 30239-30264 32159-32181 44016-44039 53106-53117 73146-73161 81371-81385 82380-82385 83397-83402 96239-96262
aknsdodqbkfgaybf M 20 330-351 7696-7707 12062-12078 14971-14983 28500-28523 29190-29198 43805-43810 45270-45292 46936-46957 52547-52557 53285-53289 61554-61559 62729-62736 71904-71920 78955-78971 81249-81267 84262-84269 84851-84874 86040-86052 92742-92748
pldhxwxebgpdaolf I 20 405-425 7797-7801 20305-20313 40779-40788 41168-41192 42333-42352 44098-44108 45842-45845 46018-46031 53380-53392 56602-56610 56713-56724 57888-57894 65526-65545 74054-74074 77855-77857 78279-78303 87213-87222 88462-88464 91515-91538
fhdgkqzpdbyoitfk I 20 428-444 3039-3044 5777-5789 10046-10053 10143-10153 13471-13478 21725-21745 33215-33240 35885-35903 36759-36761 41845-41870 54639-54652 55520-55522 70595-70613 71861-71867 76004-76008 85371-85395 95838-95854 95884-95888 98716-98728
fugwcksvjelluthk I 20 489-511 2804-2821 4327-4348 6216-6236 12401-12421 12439-12447 16067-16086 24133-24144 25662-25682 36037-36040 38623-38631 48155-48173 50088-50103 54841-54858 56903-56906 59804-59807 75608-75629 89916-89918 95315-95335 95695-95706
xpwluqjjrpuaadfw I 20 518-520 5196-5204 14582-14596 22708-22711 28660-28662 29654-29679 56886-56900 58995-59000 65287-65307 65644-65650 67152-67156 70943-70968 70988-71003 76609-76627 76713-76733 78590-78598 84088-84106 89404-89412 92100-92113 92210-92219
kwhgitcqmwgaewji I 20 591-603 2693-2697 5836-5856 15896-15917 24735-24756 33373-33385 35990-35996 39266-39278 40230-40253 41072-41086 42286-42311 53318-53333 59062-59085 69940-69947 75713-75719 79574-79585 89224-89234 91156-91160 96433-96451 97472-97493
hudbbjhnyfqgizdf I 20 641-663 15999-16013 18476-18496 24690-24704 25328-25334 25936-25938 26624-26639 32279-32302 41238-41254 42756-42763 45438-45451 46411-46421 52751-52770 58458-58473 65757-65767 71339-71364 74837-74859 86461-86482 89600-89608 90948-90970
bmorczorqlgqjezw I 20 702-724 2934-2940 11914-11937 22814-22818 28019-28041 38809-38816 40721-40730 49593-49618 51646-51651 59935-59949 62391-62402 65568-65593 74310-74330 79182-79192 82768-82780 87908-87923 92076-92082 92946-92958 93776-93781 96303-96317
nnlmpngqdiygbono M 20 753-759 1609-1614 1934-1950 3183-3207 11190-11199 13420-13428 14288-14298 15144-15147 17936-17953 21032-21047 23105-23128 29578-29584 47832-47850 48045-48065 53205-53212 66895-66905 76953-76974 79521-79544 87481-87487 91332-91347
gjrvgfriyjgwhmjp M 20 794-800 8129-8152 17805-17810 25794-25804 27480-27505 37923-37929 42775-42797 42952-42959 43254-43264 45042-45062 50322-50347 51252-51261 55357-55366 57102-57109 59260-59271 67418-67440 70891-70905 85127-85129 89293-89314 97523-97544
xaoweggqxtbrklab M 20 896-899 1743-1746 2838-2849 5128-5147 11485-11500 18221-18244 32507-32527 33413-33416 35720-35740 54912-54932 59216-59223 60976-60978 62910-62928 68841-68852 76291-76296 77539-77556 85738-85763 87053-87066 99109-99129 99346-99367
zyrlfgtnbedjuwct M 20 950-954 3907-3911 10284-10296 11886-11905 33527-33542 34185-34197 35631-35634 46578-46592 46812-46831 47526-47548 52619-52637 52776-52789 63317-63324 69159-69170 70432-70443 73742-73755 85623-85627 86406-86426 89034-89056 96153-96177
mqhsubvbcpdoregq M 20 1004-1029 4826-4830 7835-7850 11126-11150 22799-22809 23395-23417 35362-35381 57164-57178 61262-61273 64002-64011 65208-65213 67701-67722 68304-68318 73095-73099 77955-77975 82298-82310 82389-82407 86518-86523 91029-91052 93132-93145
awpesoyyetrqikqp M 20 1131-1151 9549-9554 12115-12126 24430-24455 24544-24555 25456-25473 31898-31901 32083-32085 36866-36871 38262-38278 40819-40839 48474-48482 59477-59501 64311-64328 77441-77451 80499-80509 80516-80519 80608-80618 81712-81720 90156-90178
sssocjylhkcpmuof M 20 1159-1165 10711-10728 14474-14487 14653-14669 22392-22407 28705-28710 32045-32057 36187-36192 43209-43219 43865-43888 48613-48629 57727-57751 61897-61903 63351-63358 65178-65203 65993-66016 72149-72169 92690-92698 93867-93872 98323-98348
alchaaysvghrcftx I 20 1179-1198 1769-1792 3003-3010 7970-7977 23194-23214 26078-26090 27268-27287 35534-35551 36655-36673 39083-39101 44224-44239 47683-47700 56480-56491 58340-58346 64140-64151 69224-69230 74429-74447 75839-75851 80930-80951 90463-90473
kgznajjiaotebsjk M 20 1348-1350 14423-14441 19166-19173 19385-19393 22893-22913 25356-25380 31526-31544 37300-37321 42064-42074 47789-47810 68083-68091 69130-69144 72407-72419 74364-74370 79828-79846 83426-83429 87042-87046 87492-87514 92433-92447 98978-98988
dyyjwupnjprquihz I 20 1485-1506 8597-8617 17597-17620 21895-21898 23036-23056 23841-23862 32349-32363 38011-38026 48585-48591 49282-49305 50975-50982 71387-71390 71559-71572 74641-74649 81645-81654 82879-82898 82942-82966 86577-86595 87109-87118 97886-97905
pimrzrjvoweohzps I 20 1528-1531 5440-5458 9970-9992 11384-11398 19359-19362 24219-24233 28680-28695 30994-31007 34475-34485 35075-35083 39598-39613 58305-58330 61827-61839 66236-66253 68586-68595 85056-85076 85259-85274 96541-96558 98595-98610 98803-98810
ghtnmytstklwvisx I 20 1534-1547 13827-13829 21326-21334 25702-25727 28712-28718 29136-29158 31382-31393 32714-32730 37979-37981 40527-40537 43348-43358 46960-46974 50039-50053 61872-61885 64881-64893 65347-65357 66562-66576 76660-76673 83284-83287 83715-83730
ezpfrbtphwrfrsla I 20 1559-1581 2242-2252 2461-2482 3128-3143 5295-5317 10495-10505 19897-19902 25850-25874 30907-30910 39381-39385 46068-46080 51554-51556 51862-51874 55890-55894 65803-65818 71871-71888 89435-89441 89984-90008 90055-90062 99616-99631
amcfzteicwwsehlq I 20 1594-1602 6033-6048 11307-11315 15040-15046 16870-16877 18830-18846 21336-21340 25214-25234 37521-37543 42081-42095 46347-46361 46696-46721 49781-49790 62996-63009 68251-68268 77992-77994 88933-88950 90652-90673 93678-93691 94726-94746
wnjzqwkxptlgwzcp I 20 1959-1962 8522-8532 26703-26710 27426-27439 37982-38004 43170-43188 54975-54978 55580-55589 58003-58024 63468-63479 66352-66365 76551-76554 77881-77890 79119-79138 81847-81871 83250-83271 84804-84806 89075-89097 93815-93833 98950-98962
jscaegjppskmwglw I 20 1972-1997 5909-5928 6748-6756 7466-7473 8421-8425 19058-19078 21205-21229 22687-22702 51591-51597 54047-54066 54822-54833 57399-57420 73323-73339 74373-74394 85171-85188 87239-87242 90188-90205 91090-91095 93573-93578 94636-94638
ycxqsimpciebzxgd I 20 2025-2031 7223-7238 12777-12792 13298-13309 15060-15065 15251-15273 18383-18391 19105-19111 23086-23096 34735-34737 35317-35324 38470-38475 57238-57252 60481-60493 60776-60785 61452-61467 65725-65732 66706-66727 66808-66817 69635-69648
olbstohtzjimbmnr I 20 2150-2152 13068-13077 16587-16599 17129-17153 20722-20729 25948-25951 34962-34966 41150-41158 44979-44991 46517-46538 52115-52135 52897-52921 58061-58072 61619-61631 64172-64196 64404-64414 69004-69018 74162-74187 85008-85010 89790-89814
bzhyspptnrerxswg I 20 2170-2183 5489-5507 14906-14913 17479-17483 27700-27704 29336-29357 32953-32970 33110-33116 55790-55794 56377-56379 62680-62695 63640-63651 64733-64755 64810-64830 69381-69402 73209-73217 75691-75708 92995-93017 93646-93652 98534-98539
pqkvrgccrhmevlwt I 20 2185-2191 2581-2583 4971-4975 19905-19924 27748-27754 33684-33689 40452-40463 49551-49571 58162-58186 60990-60992 61094-61105 63098-63105 67170-67180 67220-67228 67524-67528 68798-68818 69051-69066 72291-72300 76364-76368 97252-97277
hfrzbcoxgmnsktfv I 20 2220-2239 5801-5807 16385-16393 31336-31344 31626-31628 36910-36935 45704-45725 49247-49253 57509-57519 63942-63958 68044-68065 71792-71795 75045-75063 76815-76821 78877-78880 79631-79650 80267-80286 87425-87435 89186-89208 95965-95981
sccrjbcyhwcdrlia M 20 2398-2408 11538-11541 17088-17110 17709-17724 30546-30548 37807-37829 38358-38365 43476-43478 43931-43944 52836-52847 60204-60220 67622-67630 69659-69666 82557-82567 82837-82851 87023-87038 87791-87810 91488-91502 92648-92664 95900-95919
kynzvzmmbmrhpuls I 20 2435-2448 15638-15649 16324-16337 17352-17375 23142-23153 23162-23172 24490-24506 38436-38449 39336-39345 42910-42921 44290-44311 49463-49477 51971-51977 52797-52799 66745-66759 79040-79047 86090-86109 86954-86966 90994-91014 94459-94475
qbmabbgfmvxqyzoi M 20 2503-2528 14175-14192 15164-15187 22235-22242 26167-26187 34895-34908 38604-38611 39845-39850 44062-44087 49637-49650 80972-80994 81564-81578 82729-82738 84729-84742 92373-92377 94702-94721 94794-94815 97652-97661 97700-97709 98353-98370
nooitixdlhesppns I 20 2628-2631 5594-5597 15205-15213 16200-16220 16829-16853 25816-25826 26724-26745 32777-32790 36542-36562 42150-42166 43961-43976 48878-48885 50713-50735 51507-51526 67052-67062 73778-73798 81057-81067 85099-85117 94775-94785 96755-96762
azpzhzhnydwggtpm M 20 2640-2652 5045-5062 7209-7220 8037-8049 9061-9068 10155-10179 14778-14803 38122-38125 41352-41371 44964-44977 45764-45779 61632-61639 62115-62140 66223-66227 69708-69718 81237-81240 82043-82057 90280-90300 93914-93917 96114-96120
nzfplulemdebohwl I 20 2753-2759 4677-4701 8551-8574 13159-13174 16761-16772 18684-18692 20072-20088 25629-25650 53059-53068 58125-58131 61437-61448 62739-62743 63815-63837 64988-65002 67645-67660 71261-71279 79229-79248 83811-83826 87686-87690 96823-96832
dyhofjlnebhtukdr I 20 2855-2867 24616-24624 26148-26160 26368-26376 28193-28209 30777-30781 31467-31488 35906-35918 39350-39360 45688-45697 49201-49224 54700-54711 63402-63427 68823-68834 74343-74358 86707-86718 88752-88765 93692-93698 94568-94587 99651-99665
dvtpcdawocsxtger M 20 3220-3238 7557-7566 16278-16296 22747-22772 26989-27014 34036-34054 38867-38882 39915-39923 42472-42488 44047-44061 44639-44657 46201-46212 48849-48873 55266-55289 61513-61537 63929-63932 70176-70191 86251-86254 88810-88820 98054-98065
bizmnvxqxsvqllwf M 1 3239-3478
wpuqzlmldqcfnfmb I 20 3479-3502 10751-10770 12657-12677 17425-17433 23929-23932 24315-24332 27531-27534 27877-27895 30751-30755 32653-32665 34925-34939 35331-35353 35971-35982 37627-37629 49070-49076 51814-51838 52090-52109 58656-58675 62296-62306 81389-81407
glllycvksxmqrkxk M 20 3685-3704 4775-4779 22435-22460 26477-26483 34460-34474 35106-35118 37775-37797 42231-42237 44454-44461 45180-45196 55498-55500 75745-75768 78239-78263 83155-83174 85516-85531 87403-87418 90555-90579 92771-92775 95806-95817 99681-99688
ujzbaikmlvqugwch I 20 3789-3801 15562-15587 22413-22417 25969-25979 27052-27059 28425-28433 30598-30616 30674-30682 35249-35269 35514-35518 39551-39569 39976-39987 44437-44447 49119-49135 72018-72029 73349-73365 73632-73654 78312-78332 79587-79591 88850-88853
oymdtvdvdbhocxxt M 20 3837-3844 18369-18382 22159-22184 22596-22616 26121-26139 30075-30090 33052-33069 34560-34579 35589-35605 35692-35717 37391-37405 37891-37910 44321-44333 50472-50487 59043-59050 59884-59909 67381-67385 72555-72561 88866-88879 96793-96809
vsrpkmgdkkhoctfk I 20 3914-3919 8765-8769 8916-8925 21400-21403 24338-24350 30289-30294 33011-33032 40634-40636 41820-41824 45894-45897 50561-50576 51475-51488 56745-56761 66923-66948 68911-68915 77927-77939 84273-84287 90831-90846 95476-95479 98139-98147
cwkfdfxeuxarupns I 20 4005-4030 5322-5329 7486-7488 7671-7682 10073-10075 21408-21415 42642-42665 42889-42898 49673-49693 50736-50742 53400-53404 63849-63856 65488-65503 65718-65722 68513-68521 71532-71547 78646-78663 92289-92296 93839-93853 95022-95042
wktuxbmzkxmbdpms M 20 4151-4156 5721-5743 17439-17460 30295-30297 31221-31232 32205-32209 40300-40316 42260-42282 50958-50964 53482-53506 53893-53903 54272-54282 60820-60835 68754-68762 72478-72495 78040-78065 79268-79273 90120-90144 92982-92991 93506-93524
efpazzekyfwfavxs M 20 4177-4202 4613-4623 6687-6689 12817-12829 13450-13464 19151-19165 32737-32760 39459-39465 40348-40350 41938-41963 49933-49954 51364-51375 54553-54572 55297-55301 62316-62337 80436-80440 82641-82659 83297-83310 95387-95401 98553-98569
vivnstvxlqvrsnau I 20 4214-4226 12202-12221 15331-15339 24271-24276 25049-25051 32425-32450 35456-35464 41455-41461 44367-44373 49230-49243 53982-54002 59918-59931 62002-62016 64384-64402 64428-64435 70148-70168 87981-88005 89623-89633 92595-92616 94182-94205
nflhdpjrekmvkkrb I 20 4367-4386 9763-9771 10599-10623 12995-13018 13620-13645 17390-17395 23895-23917 30116-30141 31731-31753 38256-38261 48140-48145 70017-70021 73956-73959 74542-74560 75113-75123 79692-79698 83775-83796 87182-87207 93219-93232 98113-98131
hhjerdljfxhedlzo I 20 4545-4555 7627-7648 9503-9519 11204-11215 11350-11369 11555-11580 20021-20027 26917-26921 32221-32245 36319-36326 46633-46649 54574-54587 57198-57220 59152-59173 60295-60300 60897-60901 64535-64551 65630-65639 92708-92715 97920-97934
kluyafbaasfubexh M 20 5209-5211 8739-8751 12156-12176 16252-16259 16444-16469 16820-16822 21457-21481 24946-24965 26291-26302 29365-29386 33341-33348 37751-37757 40914-40928 41315-41317 42424-42444 43059-43064 64443-64445 65143-65149 82513-82538 83592-83614
qtqibkeukuwrxggw I 20 5377-5386 13689-13708 19675-19699 23766-23783 36942-36949 37183-37192 44710-44734 61484-61495 62836-62838 77175-77179 78392-78406 81432-81451 82497-82505 83098-83106 84141-84162 86136-86144 87549-87556 90529-90544 91642-91666 94420-94437
rwprylskdzczvmkj M 20 5543-5561 10801-10821 17324-17333 20260-20274 23433-23455 33149-33152 36822-36846 39912-39914 42610-42618 42670-42695 46617-46628 53302-53315 56931-56933 57580-57584 60924-60939 67830-67834 76279-76284 83734-83752 94606-94615 95275-95300
ducockvmluxueqlg I 20 5628-5637 18422-18447 20855-20880 20934-20946 29542-29556 33127-33139 49873-49880 50550-50555 50679-50689 55463-55484 59359-59361 67739-67756 73273-73276 80187-80200 85679-85683 92669-92685 93447-93462 93480-93502 95750-95752 96919-96938
puwuavkqmmdepqbl I 20 5688-5707 6885-6910 29853-29857 37096-37112 38737-38755 40072-40074 41296-41304 43614-43638 46223-46233 47064-47080 55377-55401 58090-58105 60079-60103 63959-63982 65395-65415 74966-74974 83360-83371 91559-91579 93299-93304 93528-93534
ftqpdczaablayauv I 20 5867-5875 8895-8914 8936-8946 14628-14638 21308-21313 29978-29989 32364-32379 34407-34424 43545-43563 44474-44496 52689-52704 53469-53477 54933-54941 58518-58528 72957-72960 73466-73479 78905-78916 85146-85162 88142-88145 95120-95126
hexcraejitqceuix M 20 5998-6001 9778-9780 14384-14393 19861-19865 24774-24799 33784-33803 34391-34402 47227-47245 51993-51995 53172-53178 54746-54757 56563-56582 60664-60668 62077-62098 74988-74999 79072-79086 80355-80369 80528-80534 89879-89904 97144-97167
nsrcwyptdvtgbbuk M 20 6014-6022 7877-7902 11951-11963 15843-15863 16499-16508 20223-20227 22336-22359 24011-24025 27411-27424 31319-31323 38764-38779 40265-40290 54522-54525 64681-64705 65679-65704 68444-68460 83441-83463 83937-83951 90379-90403 96699-96709
tenolgjfooyjwsja I 20 6111-6119 13963-13978 16094-16105 18288-18299 18509-18524 21997-22005 24277-24288 33653-33669 35179-35191 37152-37166 49509-49529 70351-70367 73483-73494 74120-74125 83129-83145 84317-84330 91964-91983 93382-93387 94959-94966 95156-95170
rvsgqnajkzecwnpd I 20 6152-6161 7685-7690 15221-15241 15880-15890 20429-20445 20662-20687 24988-24995 26254-26270 32570-32585 35824-35841 51435-51460 61701-61706 66442-66451 67512-67523 67723-67738 74471-74484 76328-76333 82198-82204 86054-86071 98645-98667
yzrrnyqxlyshectk I 20 6287-6312 7933-7956 8270-8272 10222-10224 19970-19984 24662-24677 27557-27579 29413-29435 43586-43602 44554-44578 44605-44621 50175-50191 57686-57693 58947-58952 66599-66608 67562-67574 69093-69101 77453-77468 80331-80336 99960-99972
bakrdcmedpjvdmla M 20 6449-6461 18583-18594 22135-22148 23225-23234 28290-28296 30479-30503 36978-36987 42033-42058 46781-46800 53636-53650 53871-53876 62546-62570 69335-69339 80293-80297 85839-85862 86780-86783 89373-89378 94998-95010 95429-95453 98075-98082
atcqilkiavvalfdl I 20 6591-6611 13797-13819 28459-28473 28882-28887 34139-34149 36125-36139 37603-37623 45208-45216 51048-51067 51132-51135 53126-53141 59812-59832 61758-61763 62378-62384 75024-75041 77816-77828 81487-81511 90063-90087 97425-97436 99335-99339
bvrdsjrtovzzyhap I 20 6621-6628 12461-12469 13439-13442 16580-16586 23341-23365 26812-26833 28477-28492 30149-30172 38992-38995 39306-39314 43707-43718 52384-52390 53511-53520 53853-53863 56799-56819 63732-63735 64024-64037 68685-68709 69177-69195 69555-69557
vmnnwwaaaseebdrx I 20 6800-6825 19769-19785 28351-28360 30385-30405 30758-30760 34011-34022 37437-37460 39726-39743 43326-43344 46908-46916 54109-54127 63901-63915 64074-64077 72562-72568 73580-73582 78980-78996 87872-87896 93348-93370 93750-93756 94240-94265
mazuvqptwfklbfqv I 20 6849-6871 17397-17404 17884-17892 27083-27086 28549-28560 33316-33323 35300-35302 45081-45095 52181-52198 55441-55446 57392-57394 63555-63570 64552-64568 68357-68373 74075-74095 74673-74675 83965-83968 87617-87630 89769-89786 92830-92849
zepgtyasbhsglyxt I 20 6940-6961 18248-18273 31765-31784 38568-38579 43222-43231 45980-45984 46334-46342 49725-49736 50596-50612 53722-53729 56657-56676 58732-58754 62885-62893 69028-69039 71443-71451 75409-75424 76240-76261 78231-78238 78498-78519 82827-82835
atplbvnyknqjgeyt M 1 6962-7201
avvpavdzfnixtnay I 20 7272-7293 7376-7394 10589-10593 12245-12266 12966-12978 14144-14163 48955-48963 56055-56072 57435-57458 57596-57607 63264-63279 63443-63464 77674-77691 78445-78451 79321-79340 91459-91472 93995-94009 95127-95142 95373-95378 97594-97603
wixjtylqynzxfqla M 1 9134-9458
pmqwzzjjbldmixgv I 20 9658-9680 13674-13681 15112-15131 15761-15769 17119-17122 17299-17305 26574-26588 40386-40409 40793-40810 45150-45168 47915-47932 56968-56970 67233-67243 67896-67920 70827-70836 71840-71859 77201-77213 92913-92928 94968-94979 97628-97651
noudkrfysdgargdf I 20 9910-9926 10386-10392 12337-12345 13290-13295 19112-19128 19929-19942 22019-22044 26238-26241 30841-30843 31969-31983 33831-33840 40521-40525 50442-50467 51003-51017 66118-66135 73277-73297 73683-73688 79032-79034 88990-89011 99544-99548
nsphqictjpqectvc M 20 9933-9953 13998-14011 15785-15804 19749-19760 20375-20394 21073-21077 32565-32569 34256-34261 34338-34358 35164-35167 44117-44125 59514-59522 61291-61300 62425-62443 72549-72553 79546-79568 84193-84212 84812-84826 91785-91795 93420-93431
ukfokusftgefouqz I 20 10120-10126 12860-12875 19506-19530 19840-19857 20929-20932 25099-25122 44391-44407 48728-48748 50284-50286 53951-53966 54714-54720 59377-59383 64228-64230 64509-64514 71816-71818 75262-75278 76048-76073 88964-88987 91111-91118 91836-91861
uzeqevqbntazkudk M 1 10849-11125
ytmgfgyyaedxedrg M 1 11601-11830
ythtnoogysrwfjlk M 20 12631-12648 21496-21520 27129-27141 30439-30449 31403-31428 38783-38794 39637-39652 47450-47464 56776-56798 57140-57148 60758-60769 63023-63031 65773-65778 66096-66106 71594-71610 72126-72143 73117-73136 81074-81098 87281-87296 96267-96287
krajsaavjtmeetui M 20 13373-13388 14822-14825 19410-19412 19649-19660 20795-20819 23530-23555 27150-27155 28319-28344 32845-32869 36872-36881 44756-44762 46116-46126 55002-55011 74256-74281 75876-75887 77016-77031 77069-77085 78818-78827 80134-80146 97559-97578
nlpgllnzhslrwwog M 20 15351-15359 15429-15448 17244-17267 27949-27965 28047-28049 35094-35101 35656-35661 40210-40224 44428-44431 52240-52257 58839-58860 61400-61413 72799-72814 77471-77482 80039-80063 80087-80105 83408-83412 84436-84450 88325-88348 93947-93965
ccazuvjxjzakgvqk M 20 15956-15976 19541-19564 21124-21132 29531-29541 34686-34710 36970-36973 38723-38725 47869-47877 48998-49010 50839-50844 59558-59578 60401-60419 71136-71153 76097-76114 80220-80240 83220-83241 87088-87095 90228-90249 92959-92977 98756-98767
pblqpoaxqtzjcwxu M 1 16878-17071
aheulwhjxddyrble M 1 17954-18159
llwdcaaljkenpvvy M 1 18847-19051
fawqlrjxfahmmleu M 1 20446-20651
zdqdjpnfqcqfouhl M 1 28888-29093
rsfwpubajohjehvw M 1 41537-41819
dfsdlitqbkffjjpq M 1 45452-45670
coxdnzovvoszqqpa M 1 48174-48404
nkixvzhhexpgntbb M 1 54283-54513
umbnhqkrezkclhug M 1 56073-56310
jpvdeaeekjfskvpr M 1 72569-72797
llhekmpdihqrgkbp M 1 77214-77431
wjqorladulvksohn M 1 80691-80929
exyniucnayxebzmk M 1 84490-84728
idwekjcjgzcwviaz M 1 88503-88751
ibzvjuijhxnsamre M 1 99689-99944
]]></test_output>
<hint><![CDATA[]]></hint>
<source><![CDATA[2008 ACM ICPC South Central USA Regional Programming Contest]]></source>
<solution language="C++"><![CDATA[#include <functional>
#include <iostream>
#include <algorithm>
#include <utility>
#include <string>
#include <vector>
#include <map>

using namespace std;

/*
 * DEBUG ONLY: If compiled -DDEBUG, the intermediate state of the disk after
 * each step of the defrag pass is printed to stderr.
 */

/* SANITY CHECK: assertion macro for verifying input data and internal state */
#define ASSERT(e) { if(!(e)) { cerr << #e << endl; throw; } }

/* A single extent represented as a (block, count) tuple. */
typedef pair<int, int> ext_t;
typedef vector<ext_t> extlist_t;

/* Representation of a single file in the data set */
typedef struct {
  string name;           /* File name from data set */
  bool immobile;         /* True if file is immobile */
  int size;              /* Size in blocks of file (not including metadata) */
  int defrag;            /* How many defrag passes has this file been through */
  int print;             /* Number times printed (see output() function) */
  vector<ext_t> extlist; /* List of extents for this file */
} file_t;

/*
 * The extent map tracks all the currently allocated blocks on disk. Individual
 * extents are the keys and they map to the actual file_t structures that own
 * the extent. Since STL maps are sorted, we can use one in ascending order and
 * one in descending to determine the order in which files are processed during
 * the two defrag steps.
 */
typedef map<ext_t, file_t *, bool (*)(ext_t const &,ext_t const &)> extmap_t;

/* Comparison functions for the two extent maps */
bool ascending(ext_t const &a, ext_t const &b)
{
    return a.first < b.first;
}
bool descending(ext_t const &a, ext_t const &b)
{
    return a.second > b.second;
}

/*
 * Print info about all the files on disk. Files are printed in the order that
 * their first extent appears in "first". As each file is printed, its "print"
 * flag is incremented so that if we find another extend in "first" that belongs
 * to this file, then we skip printing that file during this print pass. The
 * extent list for each file is also sorted in ascending order.
 */
void output(ostream &out, extmap_t &first)
{
    static int print_count = 0;
    extmap_t::iterator i;
    extlist_t::iterator j;

    print_count++;
          
    for(i = first.begin(); i != first.end(); ++i) {
        file_t &file = *i->second;
        
        /* Print each file only once per output() call */
        if(file.print == print_count)
            continue;        
        file.print = print_count;
        
        out << file.name << (file.immobile ? " I " : " M ");
        out << file.extlist.size();
                
        /* Print the extent list in numerically ascending order */
        sort(file.extlist.begin(), file.extlist.end());        
        for(j = file.extlist.begin(); j != file.extlist.end(); ++j) {
            out << " " << j->first << "-" << j->second;
        }
        
        out << endl;
    }    
}

/*
 * These are helper functions for use by the generic find_free(). Depending on
 * which order we iterate over the *used* extents, these helpers compute and
 * return the size of the *free* extent that is found between the currently
 * allocated "prev" and "next" extents.
 */
typedef ext_t (*free_helper_t)(ext_t, ext_t);
ext_t first_free(ext_t prev, ext_t next)
{
    return ext_t(prev.second + 1, next.first - 1);
}
ext_t last_free(ext_t prev, ext_t next)
{
    return ext_t(next.second + 1, prev.first - 1);
}

/*
 * These helper functions are for use by defrag() to align "size" blocks either
 * to the front of or the back of the available "free" extent. Here "size" does
 * not include the metadata so these functions account for it.
 */
typedef ext_t (*alloc_helper_t)(ext_t, int);
ext_t to_front(ext_t free, int size)
{
    return ext_t(free.first, free.first + size);
}
ext_t to_back(ext_t free, int size)
{
    return ext_t(free.second - size, free.second);
}

/*
 * Using the sort ordering of the extent map "extmap", find the first or last
 * available extent on the disk that is big enough to hold a file "size"
 * blocks long. The "size" parameter does not include metadata so this
 * function takes it into account. Return "true" if an available extent was
 * found, in which case "free" will contain the available extent.
 *
 * The "initial" and "final" arguments are needed to find the gaps at the very
 * beginning and end of the disk (if N is the number of used extends, there
 * could be N - 1, N, or N + 1 free extents *betweem* the used extents).
 *
 * The "helper" function returns an extent representing the free space between
 * the two already allocated extents "prev" and "next".
 */
bool find_free(extmap_t &extmap, free_helper_t helper,
    ext_t initial, ext_t final, ext_t &free, int size)
{   
    extmap_t::iterator i = extmap.begin();
    ext_t prev;
    
    for(prev = initial; i != extmap.end(); ++i) {
        free = helper(prev, i->first);
        if(free.second - free.first + 1 >= size + 1)
            return true;        
        prev = i->first;
    }
   
    free = helper(prev, final);
    if(free.second - free.first + 1 >= size + 1)
        return true;
       
    return false;  
}

/*
 * Defragment the disk by picking files in order from "first" and putting them,
 * in order, into any free space found between the extents in "last". By calling
 * this function twice but with "first" and "last" reversed, we can do both
 * steps of a defragmentation pass. The "defrag" flag is incremented for
 * each file as we process it since "first" can have multiple extents for the
 * same file, but each file must be processed only once per step/pass.
 */
void defrag(extmap_t &first, extmap_t &last, free_helper_t free_helper,
    alloc_helper_t alloc_helper, ext_t initial, ext_t final)
{
    static int defrag_count = 0;
    extmap_t::iterator i;
    
    defrag_count++;
    
    /* Defragment files in ascending order by their first blocks */
    for(i = first.begin(); i != first.end(); ++i) {
        file_t &file = *i->second;

        /* Defrag each file only once per defrag() call */
        if(file.defrag == defrag_count)
            continue;        
        file.defrag = defrag_count;

        /* Do not attempt moving an immobile file */
        if(file.immobile)
            continue;

        /*
         * Search through the extents in reverse order and try to find an empty
         * spot between allocated extents that's big enough to hold our file.
         * If a free spot was found, move the file info the free spot by
         * updating the file's own extent list and updating the "last" extent
         * map to reflect the new allocation. Note that at this point we
         * cannot update "first" yet because that would invalidate the iterator
         * on it.
         */
        ext_t free;
        if(find_free(last, free_helper, initial, final, free, file.size)) {
            ext_t used = alloc_helper(free, file.size);
            vector<ext_t>::iterator j;
                
            /* Release old file extents from the global "last" map */
            for(j = file.extlist.begin(); j != file.extlist.end(); ++j) {
                last.erase(*j);
            }
            
            /* Allocate new single file extent into the global "last" map */
            last[used] = &file;
            
            /* Update the file's own extent list */
            file.extlist.clear();
            file.extlist.push_back(used);
        }
    }
    
    /* Now we can rebuild "first" map by using the updated "last" map */
    first.clear();
    first.insert(last.begin(), last.end());
}

/* Main body of program */
void process(void)
{
    int data_num, data_idx;
    
    /* Read how many data sets to process */
    cin >> data_num;
    
    /* Process each data set separately */
    for(data_idx = 0; data_idx < data_num; data_idx++) {        
        int file_idx, file_num;    /* Looping over filenames */
        int ext_idx, ext_num;      /* Looping over file extents */
        int pass_idx, pass_num;    /* Looping over defrag passes */
        int size;                  /* Total size of disk in blocks */
        int passes;                /* How many defrag passes to run */
        vector<file_t> files;      /* Detailed info about each file */
        extmap_t first(ascending); /* Extent map sorted by first block */
        extmap_t last(descending); /* Extent map sorted by last block */
        
        /* Read total disk size */        
        cin >> size;
        ASSERT(2 <= size && size <= 100000);
             
        /*
         * Read count of files and pre-populate "files" vector so that addresses
         * to vector elements are guaranteed to not change because we'll do no
         * further modifications to the vector.
         */
        cin >> file_num;
        ASSERT(1 <= file_num && file_num <= 100);
        files.resize(file_num);
        
        /* Read file info, fill in file_t structures, populate extent maps */   
        for(file_idx = 0; file_idx < file_num; file_idx++) {
            file_t &file = files[file_idx];
            int ext_idx, ext_num;
            char flag;
            
            file.defrag = 0;
            file.print = 0;            
            file.size = 0;
            
            cin >> file.name;
            
            cin >> flag;            
            ASSERT(flag == 'M' || flag == 'I');
            file.immobile = (flag == 'I');
            
            /* Read number of extents and parse extent list */
            cin >> ext_num;
            ASSERT(1 <= ext_num && ext_num <= 20);            
            for(ext_idx = 0; ext_idx < ext_num; ext_idx++) {
                char dummy;     /* To skip over the '-' character */
                ext_t ext;
                
                cin >> ext.first >> dummy >> ext.second;
                ASSERT(1 <= ext.first && ext.first <= size);
                ASSERT(1 <= ext.second && ext.second <= size);
                ASSERT(ext.first <= ext.second);
                
                file.extlist.push_back(ext);
                file.size += ext.second - ext.first;

                first[ext] = &file;
                last[ext] = &file;
            }
        }
        
        /* Print the data set label */
        cout << "DATA SET #" << data_idx + 1 << endl;
#ifdef DEBUG
        cerr << "\nDATA SET #" << data_idx + 1 << endl;
        cerr << "Initial layout:" << endl;
        output(cerr, first);
#endif
       
        /* Perform the requested number of defrag passes */
        cin >> pass_num;
        ASSERT(1 <= pass_num && pass_num <= 100);
        for(pass_idx = 0; pass_idx < pass_num; pass_idx++) {

            defrag(first, last, last_free, to_back,
                ext_t(size + 1, 0), ext_t(0, 0));
#ifdef DEBUG
            cerr << "\nPass " << pass_idx + 1 << " (to the back):" << endl;
            output(cerr, first);
#endif

            defrag(last, first, first_free, to_front,
                ext_t(0, 0), ext_t(size + 1, 0));
#ifdef DEBUG
            cerr << "\nPass " << pass_idx + 1 << " (to the front):" << endl;
            output(cerr, first);
#endif
        }
        
        /* Print the final disk layout */
        output(cout, first);
    }
}

/* Run program and print out any exceptions that occur */
int main(void)
{
    /* Throw exceptions on failed data extraction in >> operator */
    cin.exceptions(ios::failbit);
    
    /* Run main body of code */
    try {
        process();
    }
    
    /* Catch unexpected EOF or bad input data */
    catch(ios::failure const &e) {
        cerr << "Unexpected EOF or data type mismatch on input" << endl;
    }

    return 0;
}

]]></solution>
<![CDATA[]]>
</item>
<item>
<title><![CDATA[Filtration]]></title>
<time_limit><![CDATA[1]]></time_limit>
<memory_limit><![CDATA[128]]></memory_limit>

<description><![CDATA[<p>Digital Signal Processing is used for such clever effects as the &quot;echo&quot; often heard in music, or that annoying modulation done with the voices of certain singers.  The field makes the use of</p>
<i>Finite Impulse Response</i>
<p>(FIR) filters to make these effects happen.</p>
<p></p>
<p>Consider an input stream of samples, represented as a series of integers between 0 and 255 inclusive.  (This is, you should not be surprised to discover, the range of an <i>8-bit</i> sample.)  These samples come in a very specific sequence, one after the other, as the digital representation of a given waveform.  A FIR mixer will take multiple streams and combine them into one, a FIR echo filter will take one input and provide a single output, and so on.</p>
<p>A FIR filter can be represented as an equation, with the input signals on one side and the output on the other.  For example:</p>
<pre>
   Y = X[0] + X[-5]
</pre>
<p>represents an echo filter (more specifically, a post-echo filter); a given sample of Y is equal to the value of X at the same location in the input stream, plus the value of the sample that occurred five samples prior in X. Values that are not available (such as X[-5] for the first four samples of X) are set to 0.</p>
<p>In this problem, all FIR equations obey the following Backus-Naur Form (BNF) grammar:</p>
<p>
<table border="0" align="center">
    <tbody>
        <tr>
            <td><b><i>EQUATION</i></b></td>
            <td><b><tt>::=</tt></b>&nbsp;</td>
            <td><b><i>STREAM</i></b> &nbsp;__            &nbsp;&quot;<tt>=</tt>&quot;&nbsp; __&nbsp;           <b><i>EXPR</i></b></td>
        </tr>
        <tr>
            <td><b><i>STREAM</i></b></td>
            <td><b><tt>::=</tt></b></td>
            <td>A single upper-case letter representing a sample stream, such as           <tt>A</tt> or <tt>X</tt></td>
        </tr>
        <tr>
            <td><b><i>EXPR</i></b></td>
            <td><b><tt>::=</tt></b>&nbsp;</td>
            <td><b><i>VALUE</i></b> &nbsp;|&nbsp; <b><i>SAMPLE</i></b>           &nbsp;|&nbsp;           <b><i>EXPR</i></b>           &nbsp;__&nbsp;           <b><i>OPER</i></b>           &nbsp;__&nbsp;           <b><i>EXPR</i></b>           &nbsp;|&nbsp;           &quot;<tt>(</tt>&quot;           &nbsp;__&nbsp;           <b><i>EXPR</i></b>           &nbsp;__&nbsp;           &quot;<tt>)</tt>&quot;</td>
        </tr>
        <tr>
            <td><b><i>VALUE</i></b></td>
            <td><b><tt>::=</tt></b></td>
            <td>A floating-point number, such as <tt>0.25</tt>, <tt>5</tt>,          or <tt>-1.5</tt></td>
        </tr>
        <tr>
            <td><b><i>SAMPLE</i></b></td>
            <td><b><tt>::=</tt></b>&nbsp;</td>
            <td><b><i>STREAM</i></b>           &nbsp;&quot;<tt>[</tt>&quot;&nbsp; <b><i>OFFSET</i></b>           &nbsp;&quot;<tt>]</tt>&quot;</td>
        </tr>
        <tr>
            <td><b><i>OFFSET</i></b></td>
            <td><b><tt>::=</tt></b>&nbsp;</td>
            <td>An integer representing the sample offset into the stream, such as           <tt>0</tt>, <tt>1</tt>, or <tt>-5</tt>, between <tt>-100</tt> and           <tt>100</tt> inclusive.</td>
        </tr>
        <tr>
            <td><b><i>OPER</i></b></td>
            <td><b><tt>::=</tt></b>&nbsp;</td>
            <td>&quot;<tt>*</tt>&quot;&nbsp; | &nbsp;&quot;<tt>+</tt>&quot;&nbsp; |           &nbsp;&quot;<tt>-</tt>&quot;</td>
        </tr>
    </tbody>
</table>
</p>
<p>Operations are handled in the standard order of precedence (parentheses first, multiplication before addition and subtraction, otherwise left-to-right), and the resulting value is rounded <i>down</i> to the nearest integer between 0 and 255 only <i>after</i> all calculations (if any) are done by the FIR filter. The __ symbol in the above grammar specifies a series of one or more spaces. Note that whitespace in an equation is only allowed where explicitly specified by the above grammar.</p>
<p>For example, a simple low-pass filter could be expressed as:</p>
<pre>
   Z = 0.5 * Y[0] + 0.25 * Y[-1] + 0.25 * Y[1]
</pre>
<p>Each output value of Z is based on the matching value in Y, modified by the nearest values of Y.  A simple mixer can be represented as follows:</p>
<pre>
   D = C[0] + B[0]
</pre>
<p>although the clipping problems that such a filter would have should be apparent.</p>
<p>Obviously, for complicated effects, a number of filters can be connected together.  In this problem, this is represented by <i><b>STREAM</b></i>; any relevant stream will either be an input value (the source audio, for example) or the output of a single FIR filter.  However, a stream may be <i>used</i> as an input by more than one other filter.  This constitutes a <i>filter network</i>.</p>
<p>Given a series of definitions of FIR filters and starting inputs, your task is to provide all of the outputs of the various filters.  No FIR filter will have more than 10 operators or more than ten pairs of parentheses, nor will its representation use more than 80 characters.  There will be at least one input stream and at least one output stream per data set, and all streams referenced in a filter equation will be defined in the same data set. All input streams and output streams will have the same number of samples, and there will be no &quot;feedback loops&quot; described by a filter network; that is, no filter will have input dependent on its output.</p>
<p>Although they sure sound cool when Pete Townshend uses them.</p>]]></description>
<input><![CDATA[<p>Input to this problem will begin with a line containing a single integer</p>
<i>D</i>
<p>(1 &le;</p>
<i>D</i>
<p>&le; 100) indicating the number of data sets. Each data set consists of the following components:</p>
<ul>
    <li>A line containing a single integer <i>N</i> (2 &le; <i>N</i> &le; 26) indicating the number of streams in the data set;</li>
    <li>A line containing a single integer <i>S</i> (1 &le; <i>S</i> &le; 100) indicating the number of samples in every stream of the data set;</li>
    <li>A series of <i>N</i> lines, each representing one of the streams. There     will be no duplicate stream names in a data set, and each stream is one     of either:
    <ul>
        <li>an input stream, in which case its representation is of the form         &quot;<tt><i>STREAM</i> % <i>sam1 sam2 sam3 </i></tt><i>&hellip;<tt> samS</tt></i>&quot;, where         <tt><i>STREAM</i></tt> is a single capital letter, and <i>sam1</i> is the first         sample of the input stream, <i>sam2</i> is the second sample, and so         on. The individual samples and the <tt>%</tt> operator are         all separated with whitespace.</li>
        <li>a FIR filter, in which case its representation is of the form         &quot;<tt><i>STREAM</i> = <i>EXPR</i></tt>&quot;, as described above.</li>
    </ul>
    </li>
</ul>]]></input> 
<output><![CDATA[<p>For each data set in the input, output the heading &quot;<tt>DATA SET #<i>k</i></tt>&quot; where <i>k</i> is 1 for the first data set, 2 for the second, and so on. Then print the output sample streams for every FIR filter in the data set, in alphabetical order, in the format &quot;<tt><i>STREAM</i> % <i>sam1 sam2 sam3 </i></tt><i>&hellip;<tt> samS</tt></i>&quot;.</p>]]></output>
<sample_input><![CDATA[3
3
5
A % 10 20 30 20 10
B = A[0] + A[-1]
C = 0.5 * ( A[0] + B[0] )
3
5
Z = 0.5 * Y[0] + 0.5 * B[0]
Y % 50 10 50 10 50
B % 10 50 10 50 15
3
5
A % 1 2 3 4 5
B = A[-2]
C = B[2]
]]></sample_input>
<sample_output><![CDATA[DATA SET #1
B % 10 30 50 50 30
C % 10 25 40 35 20
DATA SET #2
Z % 30 30 30 30 32
DATA SET #3
B % 0 0 1 2 3
C % 1 2 3 0 0
]]></sample_output>
<test_input><![CDATA[15
3
5
A % 10 20 30 20 10
B = A[0] + A[-1]
C = 0.5 * ( A[0] + B[0] )
3
5
Z = 0.5 * Y[0] + 0.5 * B[0]
Y % 50 10 50 10 50
B % 10 50 10 50 15
3
5
A % 1 2 3 4 5
B = A[-2]
C = B[2]
16
7
F % 1 2 3 4 5 6 7
G = F[0]
H = F[1]
I = F[2]
J = F[4]
K = F[6]
L = F[7]
M = F[10]
N = F[-1]
O = F[-2] 
P = F[-4]
Q = F[-6]
R = F[-7]
S = F[-10]
T = F[100]
U = F[-100]
26
1
L = 12
R = 18
J = 10
C = 3
K = 11
H = 8
A = 1
M = 13.5
P = 16
G = 7
N = 14
O = 15
B = 2
X % 24
S = 19
T = 20
I = 9
Y = 25
F = 6
U = 21
V = 22
D = 4
E = 5
Q = 17
Z = 26
W = 23
26
1
A = F[0]
B = D[0]
C = E[0]
D = M[0]
E = H[0]
F = Z[0]
G = B[0]
H = K[0]
I = S[0]
J = I[0]
K = O[0]
L = R[0]
M = P[0]
N = W[0]
O = L[0]
P = J[0]
Q = U[0]
R = Q[0]
S = V[0]
T = X[0]
U = N[0]
V = T[0]
W % 10
X = Y[0]
Y = C[0]
Z = G[0]
26
100
A = F[1]
B = D[1]
C = E[1]
D = M[1]
E = H[1]
F = Z[1]
G = B[1]
H = K[1]
I = S[1]
J = I[1]
K = O[1]
L = R[1]
M = P[1]
N = W[1]
O = L[1]
P = J[1]
Q = U[1]
R = Q[1]
S = V[1]
T = X[1]
U = N[1]
V = T[1]
W % 255 254 253 252 251 250 249 248 247 246 245 244 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156
X = Y[1]
Y = C[1]
Z = G[1]
15
5
A = -1
B = 256
C = 34342344.123234
D = -3434253.53434
E = 42.4
F = 42.9
G % 10 234 9 130 80
H = G[0]
I = 100 + G[0]
J = G[0] * 2.0
K = 200 + J[0]
L = 0.3 * K[0]
M = L[0] - 66
N = I[0] * -1 + 150
O = 100 - L[0]
12
4
A % 230 180 130 140
B % 10 50 20 30
C % 2 6 3 8
D = A[0] - B[0] - C[0]
E = ( A[0] - B[0] - C[0] )
F = ( ( A[0] - B[0] - C[0] ) )
G = ( A[0] - B[0] ) - C[0]
H = ( ( A[0] - B[0] ) ) - C[0]
I = ( ( A[0] - B[0] ) - C[0] )
J = A[0] - ( B[0] - C[0] )
K = A[0] - ( ( B[0] - C[0] ) )
L = ( A[0] - ( B[0] - C[0] ) )
12
4
A % 230 180 130 140
B % 10 50 20 30
C % 2 6 3 8
D = A[0] + B[0] + C[0]
E = ( A[0] + B[0] + C[0] )
F = ( ( A[0] + B[0] + C[0] ) )
G = ( A[0] + B[0] ) + C[0]
H = ( ( A[0] + B[0] ) ) + C[0]
I = ( ( A[0] + B[0] ) + C[0] )
J = A[0] + ( B[0] + C[0] )
K = A[0] + ( ( B[0] + C[0] ) )
L = ( A[0] + ( B[0] + C[0] ) )
12
4
A % 1 2 3 4
B % 5 6 7 8
C % 12 9 8 7
D = A[0] * B[0] * C[0]
E = ( A[0] * B[0] * C[0] )
F = ( ( A[0] * B[0] * C[0] ) )
G = ( A[0] * B[0] ) * C[0]
H = ( ( A[0] * B[0] ) ) * C[0]
I = ( ( A[0] * B[0] ) * C[0] )
J = A[0] * ( B[0] * C[0] )
K = A[0] * ( ( B[0] * C[0] ) )
L = ( A[0] * ( B[0] * C[0] ) )
12
4
A % 1 2 3 4
B % 5 6 7 8
C % 12 9 8 7
D = A[0] * B[0] + C[0]
E = ( A[0] * B[0] + C[0] )
F = ( ( A[0] * B[0] + C[0] ) )
G = ( A[0] * B[0] ) + C[0]
H = ( ( A[0] * B[0] ) ) + C[0]
I = ( ( A[0] * B[0] ) + C[0] )
J = A[0] * ( B[0] + C[0] )
K = A[0] * ( ( B[0] + C[0] ) )
L = ( A[0] * ( B[0] + C[0] ) )
12
4
A % 1 2 3 4
B % 5 6 7 8
C % 12 9 8 7
D = A[0] + B[0] * C[0]
E = ( A[0] + B[0] * C[0] )
F = ( ( A[0] + B[0] * C[0] ) )
G = ( A[0] + B[0] ) * C[0]
H = ( ( A[0] + B[0] ) ) * C[0]
I = ( ( A[0] + B[0] ) * C[0] )
J = A[0] + ( B[0] * C[0] )
K = A[0] + ( ( B[0] * C[0] ) )
L = ( A[0] + ( B[0] * C[0] ) )
12
4
A % 12 9 8 7
B % 5 6 7 8
C % 1 2 3 4
D = A[0] * B[0] - C[0]
E = ( A[0] * B[0] - C[0] )
F = ( ( A[0] * B[0] - C[0] ) )
G = ( A[0] * B[0] ) - C[0]
H = ( ( A[0] * B[0] ) ) - C[0]
I = ( ( A[0] * B[0] ) - C[0] )
J = A[0] * ( B[0] - C[0] )
K = A[0] * ( ( B[0] - C[0] ) )
L = ( A[0] * ( B[0] - C[0] ) )
12
4
A % 230 180 130 150
B % 10 60 40 30
C % 1 2 3 2
D = A[0] - B[0] * C[0]
E = ( A[0] - B[0] * C[0] )
F = ( ( A[0] - B[0] * C[0] ) )
G = ( A[0] - B[0] ) * C[0]
H = ( ( A[0] - B[0] ) ) * C[0]
I = ( ( A[0] - B[0] ) * C[0] )
J = A[0] - ( B[0] * C[0] )
K = A[0] - ( ( B[0] * C[0] ) )
L = ( A[0] - ( B[0] * C[0] ) )
]]></test_input>
<test_output><![CDATA[DATA SET #1
B % 10 30 50 50 30
C % 10 25 40 35 20
DATA SET #2
Z % 30 30 30 30 32
DATA SET #3
B % 0 0 1 2 3
C % 1 2 3 0 0
DATA SET #4
G % 1 2 3 4 5 6 7
H % 2 3 4 5 6 7 0
I % 3 4 5 6 7 0 0
J % 5 6 7 0 0 0 0
K % 7 0 0 0 0 0 0
L % 0 0 0 0 0 0 0
M % 0 0 0 0 0 0 0
N % 0 1 2 3 4 5 6
O % 0 0 1 2 3 4 5
P % 0 0 0 0 1 2 3
Q % 0 0 0 0 0 0 1
R % 0 0 0 0 0 0 0
S % 0 0 0 0 0 0 0
T % 0 0 0 0 0 0 0
U % 0 0 0 0 0 0 0
DATA SET #5
A % 1
B % 2
C % 3
D % 4
E % 5
F % 6
G % 7
H % 8
I % 9
J % 10
K % 11
L % 12
M % 13
N % 14
O % 15
P % 16
Q % 17
R % 18
S % 19
T % 20
U % 21
V % 22
W % 23
Y % 25
Z % 26
DATA SET #6
A % 10
B % 10
C % 10
D % 10
E % 10
F % 10
G % 10
H % 10
I % 10
J % 10
K % 10
L % 10
M % 10
N % 10
O % 10
P % 10
Q % 10
R % 10
S % 10
T % 10
U % 10
V % 10
X % 10
Y % 10
Z % 10
DATA SET #7
A % 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
B % 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
C % 245 244 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0
D % 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
E % 246 245 244 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0
F % 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
G % 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
H % 247 246 245 244 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0
I % 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
J % 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
K % 248 247 246 245 244 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0
L % 250 249 248 247 246 245 244 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0
M % 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
N % 254 253 252 251 250 249 248 247 246 245 244 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0
O % 249 248 247 246 245 244 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0
P % 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Q % 252 251 250 249 248 247 246 245 244 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0
R % 251 250 249 248 247 246 245 244 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0
S % 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
T % 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0 0 0
U % 253 252 251 250 249 248 247 246 245 244 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0
V % 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0 0 0 0
X % 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0 0
Y % 244 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0
Z % 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DATA SET #8
A % 0 0 0 0 0
B % 255 255 255 255 255
C % 255 255 255 255 255
D % 0 0 0 0 0
E % 42 42 42 42 42
F % 42 42 42 42 42
H % 10 234 9 130 80
I % 110 255 109 230 180
J % 20 255 18 255 160
K % 220 255 218 255 255
L % 66 76 65 76 76
M % 0 10 0 10 10
N % 40 0 41 0 0
O % 34 24 35 24 24
DATA SET #9
D % 218 124 107 102
E % 218 124 107 102
F % 218 124 107 102
G % 218 124 107 102
H % 218 124 107 102
I % 218 124 107 102
J % 222 136 113 118
K % 222 136 113 118
L % 222 136 113 118
DATA SET #10
D % 242 236 153 178
E % 242 236 153 178
F % 242 236 153 178
G % 242 236 153 178
H % 242 236 153 178
I % 242 236 153 178
J % 242 236 153 178
K % 242 236 153 178
L % 242 236 153 178
DATA SET #11
D % 60 108 168 224
E % 60 108 168 224
F % 60 108 168 224
G % 60 108 168 224
H % 60 108 168 224
I % 60 108 168 224
J % 60 108 168 224
K % 60 108 168 224
L % 60 108 168 224
DATA SET #12
D % 17 21 29 39
E % 17 21 29 39
F % 17 21 29 39
G % 17 21 29 39
H % 17 21 29 39
I % 17 21 29 39
J % 17 30 45 60
K % 17 30 45 60
L % 17 30 45 60
DATA SET #13
D % 61 56 59 60
E % 61 56 59 60
F % 61 56 59 60
G % 72 72 80 84
H % 72 72 80 84
I % 72 72 80 84
J % 61 56 59 60
K % 61 56 59 60
L % 61 56 59 60
DATA SET #14
D % 59 52 53 52
E % 59 52 53 52
F % 59 52 53 52
G % 59 52 53 52
H % 59 52 53 52
I % 59 52 53 52
J % 48 36 32 28
K % 48 36 32 28
L % 48 36 32 28
DATA SET #15
D % 220 60 10 90
E % 220 60 10 90
F % 220 60 10 90
G % 220 240 255 240
H % 220 240 255 240
I % 220 240 255 240
J % 220 60 10 90
K % 220 60 10 90
L % 220 60 10 90
]]></test_output>
<hint><![CDATA[]]></hint>
<source><![CDATA[2008 ACM ICPC South Central USA Regional Programming Contest]]></source>
<solution language="C++"><![CDATA[#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>

using namespace std;

/* SANITY CHECK: assertion macro for verifying input data and internal state */
#define ASSERT(e) { if(!(e)) { cerr << #e << endl; throw; } }

/* An stream is an ordered list of floating point samples */
typedef vector<double> stream_t;

/* A filter network consists of named filter equations */
typedef map<char, string> filterset_t;

/* A collection of named input and output streams */
typedef map<char, stream_t> streamset_t;

/*
 * Function prototypes for the recursive descent parser. The first argument is
 * a string buffer holding part of the equation still remaining to be parsed.
 * The other arguments are the samples and filter definitions as read in from
 * the input (or previously computed). Each of these functions returns a new
 * sample stream corresponding to the non-terminal symbol handled by the
 * function.
 */
stream_t parse_sum(istringstream &, streamset_t &, filterset_t &, int);
stream_t parse_term(istringstream &, streamset_t &, filterset_t &, int);
stream_t parse_expr(istringstream &, streamset_t &, filterset_t &, int);

/* Insertion operator prints out the individual samples in a stream */
ostream &operator<<(ostream &sout, stream_t const &data)
{
    for(int i = 0; i < data.size(); i++) {
        sout << " " << (int) data[i];
    }
    
    return sout;
}

/* Adding two streams together adds the individual samples */
stream_t &operator+=(stream_t &a, stream_t const &b)
{
    transform(a.begin(), a.end(), b.begin(), a.begin(), plus<double>());
    return a;
}

/* Subtracting two streams subtracts the individual samples */
stream_t &operator-=(stream_t &a, stream_t const &b)
{
    transform(a.begin(), a.end(), b.begin(), a.begin(), minus<double>());
    return a;
}

/* Multiplying two streams together multiplies the individual samples */
stream_t &operator*=(stream_t &a, stream_t const &b)
{
    transform(a.begin(), a.end(), b.begin(), a.begin(), multiplies<double>());
    return a;
}

/*
 * Return a new stream that is time-shifted by the specified offset. A positive
 * offset (i.e. forward in time) shifts the stream to the left with trailing
 * zeroes at the end. A negative offset (i.e. backward in time) shifts
 * the stream to the right with leading zeroes at the beginning. If the
 * absolute value of offset is larger than the number of available samples,
 * then the output vector will contain all zeroes.
 */
stream_t shift(stream_t const &in, int offset)
{
    /* Initialize output vector with all zeroes */
    stream_t out(in.size(), 0);
    
    /* Iterators which define the range copied from "in" stream to "out" */
    stream_t::iterator outbegin = out.begin();
    stream_t::const_iterator inbegin = in.begin();
    stream_t::const_iterator inend = in.end();
    
    /* A positive (forward in time) offset gives trailing zeroes in "out" */
    if(offset >= 0) {
        inbegin += offset;
    }
    
    /* A negative (bacward in time) offset gives leading zeroes in "out" */
    else {
        outbegin += -offset;
        inend -= -offset;
    }

    /* If the offset it too large or too small, output will have all zeroes */
    if(inbegin < inend) {
        copy(inbegin, inend,outbegin);
    }
    
    return out;
}

/*
 * If the samples for stream "name" have not already been computed and stored
 * in "streams", then compute them by parsing the appropriate equation in
 * "filters". This function uses a recursive descent parser to recognize the
 * filter equation grammer. The original grammar has to be slightly rewritten
 * to remove the ambigiuity associated with operator precedence. Below is
 * the modified grammar in Extended Backus-Naur Form (the __ symbol is left
 * out for clarity):
 *
 * EQUATION ::= STREAM "=" SUM
 * SUM      ::= TERM { SUMOPER TERM }*
 * TERM     ::= EXPR { MULOPER EXPR }*
 * EXPR     ::= VALUE | SAMPLE | "(" SUM ")"
 * SUMOPER  ::= "+" | "-"
 * MULOPER  ::= "*"
 */
void compute(char name, streamset_t &streams, filterset_t &filters,
    int sample_num)
{
    /* SANITY CHECK: Detect undefined stream names */
    ASSERT(streams.find(name) != streams.end() || filters.find(name) !=
        filters.end())

    /* SANITY CHECK: Detect feedback loops */
    ASSERT(streams.find(name) == streams.end() || streams[name].size());

    /* Do nothing if this stream has been already computed */
    if(streams[name].size()) {
        return;
    }
    
    /* Parse this filter equation and compute its sample stream */
    istringstream text(filters[name]);
    stream_t value = parse_sum(text, streams, filters, sample_num);
    ASSERT(text.eof());
    
    /* Round and clip the output samples to integers in the [0,255] range */
    ASSERT(value.size() == sample_num);
    for(int i = 0; i < sample_num; i++) {
        int integer = (int) value[i];
        
        if(integer < 0) {
            value[i] = 0;
        }
        else if(integer > 255) {
            value[i] = 255;
        }
        else {
            value[i] = integer;
        }
    }

    /* Assign the computed stream to the stream set */
    streams[name] = value;
}

/* Parse SUM ::= TERM { SUMOPER TERM }* */
stream_t parse_sum(istringstream &text, streamset_t &streams,
    filterset_t &filters, int sample_num)
{
    /* The left hand side expression must always be present */
    stream_t result = parse_term(text, streams, filters, sample_num);

    /* Look ahead one token into the input stream */
    char oper;
    text >> oper;
    
    /* Keep parsing as long as any "+" or "-" operators exist */
    while(!text.eof()) {
        ASSERT(!text.fail());
 
        /* Add or subtract the right hand side expression */
        if(oper == '+') {
            result += parse_term(text, streams, filters, sample_num);
        }
        else if(oper == '-') {
            result -= parse_term(text, streams, filters, sample_num);
        }

        /* Otherwise this is the end of the SUM non-terminal */
        else {
            text.putback(oper);            
            break;
        }

        /* Look ahead one token into the input stream */
        text >> oper;        
    }

    return result;
}

/* Parse TERM ::= EXPR { MULOPER EXPR }* */
stream_t parse_term(istringstream &text, streamset_t &streams,
    filterset_t &filters, int sample_num)
{
    /* The left hand side expression must always be present */
    stream_t result = parse_expr(text, streams, filters, sample_num);
    
    /* Look ahead one token into the input stream */
    char oper;
    text >> oper;

    /* Keep parsing as long as any "*" operators exist */
    while(!text.eof()) {
        ASSERT(!text.fail());

        /* Multiply the result by the right hand side expression */
        if(oper == '*') {
            result *= parse_expr(text, streams, filters, sample_num);
        }

        /* Otherwise this is the end of the TERM non-terminal */
        else {
            text.putback(oper);
            break;
        }

        /* Look ahead one token into the input stream */
        text >> oper;
    }
   
    return result;
}

/* Parse EXPR ::= VALUE | SAMPLE | "(" SUM ")" */
stream_t parse_expr(istringstream &text, streamset_t &streams,
    filterset_t &filters, int sample_num)
{
    stream_t result;

    /* Extract the next token from the input stream */
    string token;
    text >> token;
    ASSERT(!text.fail());
   
    /* An opening parenthesis signals the start of a nested sub expression */
    if(token == "(") {
        result = parse_sum(text, streams, filters, sample_num);

        /* Match the closing parenthesis */
        char oper;        
        text >> oper;        
        ASSERT(!text.fail());
        ASSERT(oper == ')');
    }
    
    /* An uppercase letter signals a sample definition of the form "X[N]" */
    else if(isupper(token[0])) {
        istringstream str(token);
        char name, dummy1, dummy2;
        int offset;
        
        str >> name >> dummy1 >> offset >> dummy2;
        ASSERT(dummy1 == '[' && dummy2 == ']');
        ASSERT(offset >= -100 && offset <= 100);
        ASSERT(!str.fail() && !(str >> dummy1));

        /* Ensure the requested input stream has been calculated already */
        compute(name, streams, filters, sample_num);

        /* Return a time-shifted version of the requested input stream */
        result = shift(streams[name], offset);
    }
    
    /* Otherwise this token must be a floating point constant */
    else {
        istringstream str(token);
        double value;
        char dummy;
        
        str >> value;
        ASSERT(!str.fail() && !(str >> dummy));

        /* Return a sample stream initialized to the floating point constant */
        result = stream_t(sample_num, value);
    }
    
    return result;
}

/* Main body of program */
void process(void)
{
    int data_num, data_idx;
    
    /* Read how many data sets to process */
    cin >> data_num;
    
    /* Process each data set separately */
    for(data_idx = 0; data_idx < data_num; data_idx++) {
        int sample_num, input_num, input_idx;
        streamset_t streams;
        filterset_t filters;
        
        /* Read in the number of streams and samples */
        cin >> input_num >> sample_num;
        
        /* Read in each of the stream definitions */
        for(input_idx = 0; input_idx < input_num; input_idx++) {
            char name, oper;
            int sample_idx;
            
            /* Read in the stream name and % or = operator */
            cin >> name >> oper;
            ASSERT(name >= 'A' && name <= 'Z');
            ASSERT(oper == '%' || oper == '=');

            /* SANITY CHECK: Check for duplicate stream definitions */
            ASSERT(filters.find(name) == filters.end());
            ASSERT(streams.find(name) == streams.end());
            
            /* A % operator is an input stream */
            if(oper == '%') {
                for(sample_idx = 0; sample_idx < sample_num; sample_idx++) {
                    int sample;
                                
                    cin >> sample;
                    ASSERT(sample >= 0 && sample <= 255);
                    
                    streams[name].push_back(sample);
                }
            }
            
            /* A = operator is a filter definition */
            else {
                string filter;                
                getline(cin, filter);
                filters[name] = filter;
            }
        }

        /* SANITY CHECK: Need at least one input and output stream */
        ASSERT(filters.size() && streams.size());

        cout << "DATA SET #" << data_idx + 1 << endl;
        
        /*
         * Compute and print out the samples in each output stream. The STL map
         * in filterset_t guarantees the filter names are already sorted in
         * alphabetical order.
         */
        filterset_t::iterator i;
        for(i = filters.begin(); i != filters.end(); ++i) {
            compute(i->first, streams, filters, sample_num);
            cout << i->first << " %" << streams[i->first] << endl;
        }
    }
}

/* Run program and print out any exceptions that occur */
int main(void)
{
    /* Throw exceptions on failed data extraction in >> operator */
    cin.exceptions(ios::failbit);
    
    /* Run main body of code */
    try {
        process();
    }
    
    /* Catch unexpected EOF or bad input data */
    catch(ios::failure const &e) {
        cerr << "Unexpected EOF or data type mismatch on input" << endl;
    }

    return 0;
}

]]></solution>
<![CDATA[]]>
</item>
<item>
<title><![CDATA[Like Water for Clay]]></title>
<time_limit><![CDATA[1]]></time_limit>
<memory_limit><![CDATA[128]]></memory_limit>

<description><![CDATA[<p>People do strange things.  Recently, some folks have started building structures out of Stick-Tite blocks (&quot;They stick ... tight!&quot;), pressing them between two sheets of perspex, and dunking them in water.</p>
<p>Yeah, I don't know either.</p>
<p>Stick-Tite blocks are one inch cubes of some sort of material that is permeable to air but not water.  They stick quite nicely to each other when properly aligned, such that it's delightfully easy to make any sort of nice pixel-esque structure. They also stick well (but not <i>too</i> well) to perspex (also known as Plexiglas(tm)).</p>
<p>When dunked underwater and shaken about a bit, water fills the open space in a Stick-Tite construction such that any open spaces are filled unless they are completely enclosed inside the construction.  While Stick-Tite blocks are water-impermeable, water can fill from any open space to any other open space that is orthogonally <i>or diagonally</i> adjacent.
<table border="1" align="center">
    <tbody>
        <tr>
            <td>
            <pre>
X..
.X.
..X
</pre>
            </td>
            <td>Water can flow between the top-right and bottom-left areas</td>
        </tr>
        <tr>
            <td>
            <pre>
X..
XXX
...
</pre>
            </td>
            <td>Water cannot flow between the top-right and bottom-left areas</td>
        </tr>
    </tbody>
</table>
Consider the above two examples of such a construction.  At the top, water can come through the blocks (represented by <tt>X</tt>es) to fill the top chamber.  At the bottom, water would not be able to flow between the two areas unless they were connected elsewhere.</p>
<p>After being dunked and wiggled, the Stick-Tite construction is pulled straight out of the water.  Water drains out from any holes in the bottom or sides of the construction, coming out of all internal chambers and passages until the water level is even with the bottom of holes in the sides of chambers. In addition, due to static water pressure, the height of water in any pool still connected after this draining will never be higher than the bottom of the lowest hole that the pool's water can flow from.</p>
<pre>
XXXXXXXXXXX
XX......XXX
XXX.XXXXX.X
X...X.XXXXX
X.X.X...X.X
X.X~X~X.X.X
X.X~~~X...X
X.XXXXXXX.X
</pre>
<p>In the above example, the tildes represent the maximum amount of water that the center pool can hold; while the left side has a hole one unit higher than the right side, the water level for the pool as a whole cannot be higher than the one on the right side.  The act of draining pools may make a pool of water into smaller, separate pools; these would then drain independently.</p>
<pre>
XXXXXXXXXXX
X......X..X
X.XXXX~X..X
X.X~~~~X...
X~XXXXXX~~X
X~~~~~~X~~X
X~~~~~~~~~X
XXXXXXXXXXX
</pre>
<p>A particular Stick-Tite construction will hold different amounts of water depending on which direction it's dunked into the bucket from.  Given the blocks comprising a particular construction, you will determine how much water it can hold when dunked with each of its four edges facing straight up.  (The construction is dried out completely between dunkings.)</p>
<br />]]></description>
<input><![CDATA[<p></p>
<p>Input to this problem will begin with a line containing a single integer <i>N</i> (1 &le; <i>N</i> &le; 100) indicating the number of data sets. Each data set consists of the following components:</p>
<ul>
    <li>A line containing two integers <i>H</i> and <i>W</i> (1 &le; <i>H</i>, <i>W</i> &le; 40) representing the height and width of the following Stick-Tite construction;</li>
    <li><i>H</i> lines representing the blocks, each with <i>W</i> characters, with:
    <ul>
        <li><tt>X</tt> representing Stick-Tite blocks, and</li>
        <li><tt>.</tt> representing open spaces.</li>
    </ul>
    </li>
</ul>
<p></p>]]></input> 
<output><![CDATA[<p>For each data set, print a single line of four space-separated integers, sorted from highest to lowest, representing the number of cubic inches of water the Stick-Tite structure can hold after being submerged and drained four times, each time with a different one of the four edges facing straight up.</p>
<p></p>]]></output>
<sample_input><![CDATA[2
8 11
XXXXXXXXXXX
XX......XXX
XXX.XXXXX.X
X...X.XXXXX
X.X.X...X.X
X.X.X.X.X.X
X.X...X...X
X.XXXXXXX.X
8 11
XXXXXXXXXXX
X......X..X
X.XXXX.X..X
X.X....X...
X.XXXXXX..X
X......X..X
X.........X
XXXXXXXXXXX]]></sample_input>
<sample_output><![CDATA[31 5 4 1
40 25 24 10
]]></sample_output>
<test_input><![CDATA[28
8 11
XXXXXXXXXXX
XX......XXX
XXX.XXXXX.X
X...X.XXXXX
X.X.X...X.X
X.X.X.X.X.X
X.X...X...X
X.XXXXXXX.X
8 11
XXXXXXXXXXX
X......X..X
X.XXXX.X..X
X.X....X...
X.XXXXXX..X
X......X..X
X.........X
XXXXXXXXXXX
8 11
XXXXXXXXXXX
XX......XXX
XXX.XXXXX.X
X...X.XX.XX
X.X.X...X.X
X.X.X.X.X.X
X.X...X...X
X.XXXXXXX.X
6 12
XXXX.XXX....
X..X.X.X....
X..XXXXX.X..
X........X.X
X..XXX.X.X.X
XXXXXXXXXXXX
8 9
XXXXXXXXX 
X...X...X
X.X.X....
X.X.X.X..
X.X.X.XXX
X.X...X..
X.X.XXX..
XXXXXXX..
1 1
.
1 1
X
3 3
.XX
X.X
XXX
3 3
XX.
X.X
XXX
3 3
XXX
X.X
.XX
3 3
XXX
X.X
XX.
3 4
.X.X
X..X
XXXX
3 4
X.X.
X..X
XXXX
10 10
XXXXXXXXXX
X........X
X........X
X........X
X........X
X........X
X........X
X........X
X........X
XXXXXXXXXX
10 10
.XXXXXXXXX
X........X
X........X
X........X
X........X
X........X
X........X
X........X
X........X
XXXXXXXXXX
3 5
XX..X
X.X.X
XXXXX
3 5
X..XX
X.X.X
XXXXX
4 10
X........X
XX.X.X.X.X
X.X.X.X.XX
XXXXXXXXXX
40 40
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X...X..X.............X......X..........X
X.X....X.........XXXXX...X..X...X......X
X.XXXXXX.......X.....X...X..X...XXXXXXXX
X....X.XX..XXXXX.....XX..X..X..........X
X....X.........X.........X..X..........X
X....X.........X.........X..XXXXXXXXXX.X
X..............X.........X.............X
X....X.....XXXXXXXXXXXXXXX.............X
XXXXXX..........X........XXXXXXXXXXXXXXX
X..........X....X......................X
X..XXXXXXXXX....X.........X............X
X..........X....X.........X............X
XXXXXXXXXX.XXXXXXXX..XXXXXX............X
X.............X...........XXXXXX..XXXXXX
X.XXXXXXXXXXXXX...........X............X
X.............XXXXXXXXXXXXXXXXXXXXX..XXX
XXXXXXX..XXXXXX...............X........X
X...X.....X...X.....XXXXX.....X........X
X...X.....X...X.....X...X.....X.....XX.X
X...X.....X...X.........X...........X..X
X...X.....X...X.....X...X.....XXXXXXXXXX
X...X.....X...X.....XXXXX..............X
X...XX...XX...X...............X....XXX.X
X....X...X....XXXXXXXXXXXXXXXXX....X...X
X......X...........................XXX.X
X.....XXX......X.......................X
XXXXXXXXXXXXXXXXXXXX...XXX......X.X....X
X....X....X......XX....X.X.....XX.XX...X
X....X....X.....XX....X...X...XX...XX..X
X....X....X....XX....X.....X.XX..X..XX.X
X.........X...XX....X......XXX..X.X..XXX
X....X....X..XX....X.......X...X.X.X...X
X....XXXXXX.XX.............X..X.X.X.X..X
X......X......XX..X...XXX..X.X.X.X.X.X.X
X......X...X.X..X.X...X..X.XX.XXXXXXX.XX
XXX.XXXX...X.XXX..X...XXX..X.X.X...X.X.X
X..........X.X....X...X..X.XX.XXX.XXX.XX
X..........X.X....XXX.XXX..X...........X
XXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXX
40 40
XXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXX
X...X..X.............X......X..........X
X.X....X.........XXXXX...X..X...X......X
X.XXXXXX.......X.....X...X..X...XXXXXXXX
X....X.XX..XXXXX.....XX..X..X..........X
X....X.........X.........X..X..........X
X....X.........X.........X..XXXXXXXXXX.X
X..............X.........X.............X
X....X.....XXXXXXXXXXXXXXX.............X
XXXXXX..........X........XXXXXXXXXXXXXXX
X..........X....X......................X
X..XXXXXXXXX....X.........X............X
X..........X....X.........X............X
XXXXXXXXXX.XXXXXXXX..XXXXXX............X
X.............X...........XXXXXX..XXXXXX
..XXXXXXXXXXXXX...........X.............
X.............XXXXXXXXXXXXXXXXXXXXX..XXX
XXXXXXX..XXXXXX...............X........X
X...X.....X...X.....XXXXX.....X........X
X...X.....X...X.....X...X.....X.....XX.X
X...X.....X...X.........X...........X..X
X...X.....X...X.....X...X.....XXXXXXXXXX
X...X.....X...X.....XXXXX..............X
X...XX...XX...X...............X....XXX.X
X....X...X....XXXXXXXXXXXXXXXXX....X...X
X......X...........................XXX.X
X.....XXX......X.......................X
XXXXXXXXXXXXXXXXXXXX...XXX......X.X....X
X....X....X......XX....X.X.....XX.XX...X
X....X....X.....XX....X...X...XX...XX..X
X....X....X....XX....X.....X.XX..X..XX.X
X.........X...XX....X......XXX..X.X..XXX
X....X....X..XX....X.......X...X.X.X...X
X....XXXXXX.XX.............X..X.X.X.X..X
X......X......XX..X...XXX..X.X.X.X.X.X.X
X......X...X.X..X.X...X..X.XX.XXXXXXX.XX
XXX.XXXX...X.XXX..X...XXX..X.X.X...X.X.X
X..........X.X....X...X..X.XX.XXX.XXX.XX
X..........X.X....XXX.XXX..X...........X
XXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXX
40 40
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
40 40
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X
XX.................................X.X.X
XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X.X
XX.X.............................X.X.X.X
XX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X.X.X
XX.X.X.........................X.X.X.X.X
XX.X.X.XXXXXXXXXXXXXXXXXXXXXXX.X.X.X.X.X
XX.X.X.X.....................X.X.X.X.X.X
XX.X.X.X.XXXXXXXXXXXXXXXXXXX.X.X.X.X.X.X
XX.X.X.X.X.................X.X.X.X.X.X.X
XX.X.X.X.X.XXXXXXXXXXXXXXX.X.X.X.X.X.X.X
XX.X.X.X.X.X.............X.X.X.X.X.X.X.X
XX.X.X.X.X.X.XXXXXXXXXXX.X.X.X.X.X.X.X.X
XX.X.X.X.X.X.X.........X.X.X.X.X.X.X.X.X
XX.X.X.X.X.X.X.XXXXXXX.X.X.X.X.X.X.X.X.X
XX.X.X.X.X.X.X.X.....X.X.X.X.X.X.X.X.X.X
XX.X.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
XX.X.X.X.X.X.X.X.X...X.X.X.X.X.X.X.X.X.X
XX.X.X.X.X.X.X.X.XXXXX.X.X.X.X.X.X.X.X.X
XX.X.X.X.X.X.X.X.......X.X.X.X.X.X.X.X.X
XX.X.X.X.X.X.X.XXXXXXXXX.X.X.X.X.X.X.X.X
XX.X.X.X.X.X.X...........X.X.X.X.X.X.X.X
XX.X.X.X.X.X.XXXXXXXXXXXXX.X.X.X.X.X.X.X
XX.X.X.X.X.X...............X.X.X.X.X.X.X
XX.X.X.X.X.XXXXXXXXXXXXXXXXX.X.X.X.X.X.X
XX.X.X.X.X...................X.X.X.X.X.X
XX.X.X.X.XXXXXXXXXXXXXXXXXXXXX.X.X.X.X.X
XX.X.X.X.......................X.X.X.X.X
XX.X.X.XXXXXXXXXXXXXXXXXXXXXXXXX.X.X.X.X
XX.X.X...........................X.X.X.X
XX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X.X
XX.X...............................X.X.X
XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X
XX...................................X.X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X
X......................................X
XXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXX
40 40
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X
XXXXXXXXXXXXXXXXXXX..XXXXXXXXXXXXXXXXXXX
40 40
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
40 40
.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
40 40
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXX
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
40 40
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXX
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
40 40
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X....................................X.X
X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X
X.X..................................X.X
X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X
X.X.X................................X.X
X.X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X
X.X.X.X..............................X.X
X.X.X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X
X.X.X.X.X............................X.X
X.X.X.X.X.XXXXXXXXXXXXXXXXXXXXXXXXXX.X.X
X.X.X.X.X.X..........................X.X
X.X.X.X.X.X.XXXXXXXXXXXXXXXXXXXXXXXX.X.X
X.X.X.X.X.X.X........................X.X
X.X.X.X.X.X.X.XXXXXXXXXXXXXXXXXXXXXX.X.X
X.X.X.X.X.X.X.X......................X.X
X.X.X.X.X.X.X.X.XXXXXXXXXXXXXXXXXXXX.X.X
X.X.X.X.X.X.X.X.X....................X.X
X.X.X.X.X.X.X.X.X.XXXXXXXXXXXXXXXXXX.X.X
X.X.X.X.X.X.X.X.X.X..................X.X
X.X.X.X.X.X.X.X.X.X.XXXXXXXXXXXXXXXX.X.X
X.X.X.X.X.X.X.X.X.X.X................X.X
X.X.X.X.X.X.X.X.X.X.X.XXXXXXXXXXXXXX.X.X
X.X.X.X.X.X.X.X.X.X.X.X..............X.X
X.X.X.X.X.X.X.X.X.X.X.X.XXXXXXXXXXXX.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X............X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.XXXXXXXXXX.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X..........X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXXXXXX.X.X
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X..........X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X
X...................................XX.X
X...................................XX.X
X....XXXXXX.....................XXXXXX.X
X....XXXXXX.....XXXXX...........XXXXXX.X
X....XXXXXX.....XXXXX....XXXX.......XX.X
X....XXXXXX.....XXXXX....XXXX...XX.....X
X....XXXXXX.....XXXXX....XXXX...XX..XX.X
X....XXXXXX.....XXXXX....XXXX...XX..XX.X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X
]]></test_input>
<test_output><![CDATA[31 5 4 1
40 25 24 10
33 5 5 1
19 14 4 0
26 13 12 0
0 0 0 0
0 0 0 0
1 1 0 0
1 1 0 0
1 1 0 0
1 1 0 0
2 0 0 0
2 0 0 0
0 0 0 0
64 64 0 0
4 1 0 0
4 1 0 0
16 1 0 0
1005 759 696 346
524 385 352 346
0 0 0 0
708 650 637 630
724 342 342 17
0 0 0 0
1444 1444 0 0
1445 1102 304 0
304 38 0 0
785 746 288 8
]]></test_output>
<hint><![CDATA[]]></hint>
<source><![CDATA[2008 ACM ICPC South Central USA Regional Programming Contest]]></source>
<solution language="C++"><![CDATA[#include <string.h>
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <limits>
#include <vector>
#include <set>

using namespace std;

/*
 * DEBUG ONLY: If compiled -DDEBUG, the program will print the computed water
 * layout to stderr for each of the four rotations. If compiled -DSTEP, it
 * will print an intermediate grid state showing the puddle id assignments
 * after scanning each row of the grid. The -DSTEP can be used to trace the
 * execution of the algorithm.
 */

/* SANITY CHECK: assertion macro for verifying input data and internal state */
#define ASSERT(e) { if(!(e)) { cerr << #e << endl; throw; } }

/* Maximum integer value used to represent closed walls in the grid */
#define MAXINT (numeric_limits<int>::max())

/* Max width/height of a Stick-Tite construction */
#define MAXSIZE 40

/*
 * This array type holds the initial input layout and the intermediate states
 * of the board as the computation proceeds. A 0 indicates an empty space (
 * either one that can't hold water or one that hasn't been analyzed yet). A
 * MAXINT indicates a space with a Stick-Tite bock. Any number in between
 * identifies a puddle. The structure is scanned bottom to top and independant
 * puddles are assigned numbers starting from 1.
 */
typedef int grid_t[MAXSIZE][MAXSIZE];

/*
 * This data structure maps each puddle id number to the maximum water height
 * the puddle can achieve. This is necessary to account for the effect of
 * static water pressure which causes all connected pools to drain down to the
 * same height as the lowest opening in any of the connected pools.
 */
typedef set<int> heightset_t;

#if defined(STEP) || defined(DEBUG)
/* 
 * DEBUG ONLY: Print out (to stderr) the current state of the grid. In "water"
 * mode all the puddles that have a defined height (i.e. that are not totally
 * enclosed) are marked with a ~ character. If "water" is false then  it prints
 * the  numbers that show how puddles have been identified and grouped together.
 * The first 9 puddles are printed as ASCII digits. Any higher numbers than that
 * are printed as capital letters A-Z. Any higher than that is printed as a ?
 * since we would need two characters to represent the space.
 */
void print_grid(grid_t grid, int height, int width, bool water,
    heightset_t &heightset)
{
    cerr << "   ";
    for(int col = 0; col < width; col++) {
        cerr << col % 10;
    }
    cerr << endl;

    for(int row = 0; row < height; row++) {
        cerr << setw(2) << row << " ";
        for(int col = 0; col < width; col++) {
            int id = grid[row][col];
            
            if(id == 0) {
                cerr << ".";
            } else if(id == MAXINT) {
                cerr << "X";
            } else if(water) {
                if(heightset.find(id) != heightset.end()) {
                    cerr << '~';
                } else {
                    cerr << '.';
                }
            } else {
                if(id >= 1 && id <= 9) {
                    cerr << (char) ('0' + id);
                } else if(id >= 10 && id <= 36) {
                    cerr << (char) ('A' + id - 10);
                } else {
                    cerr << '?';
                }
            }                
        }
        cerr << endl;
    }
}
#endif

/*
 * Count and return the total number of grid cells that will hold water. This
 * function counts all cells marked as belonging to a puddle but only if that
 * puddle id has already reached its maximum height (i.e. it's not completely
 * enclosed).
 */
int count_water(grid_t grid, int height, int width, heightset_t &heightset)
{
    int total = 0;

    for(int row = 0; row < height; row++) {
        for(int col = 0; col < width; col++) {
            int id = grid[row][col];
            
            if(id != 0 && id != MAXINT) {
                if(heightset.find(id) != heightset.end()) {
                    total++;
                }
            }
        }
    }

    return total;
}

/*
 * Since grid[row][col] contains an open space, this space sets the maximum
 * height of any pool below it (and to the lower left and right). Setting the
 * max height of the pool will prevent it from growing any further since it
 * would always drain out through this open space.
 */
void check_height(grid_t grid, int row, int col, int width,
    heightset_t &heightset)
{
    int id;
    
    /* Check directly below */
    id = grid[row + 1][col];        
    if(id != MAXINT && id != 0) {
        heightset.insert(id);
    }
    
    /* Check in the lower left */
    if(col >= 1) {
        id = grid[row + 1][col - 1];
        if(id != MAXINT && id != 0) {
            heightset.insert(id);
        }
    }

    /* Check in the lower right */
    if(col < width - 1) {
        id = grid[row + 1][col + 1];
        if(id != MAXINT && id != 0) {
            heightset.insert(id);
        }
    }
}

/*
 * When a puddle is being merged, this function helps with merging any other
 * previously separate puddles connected to us. Given a merge id and a location
 * in the grid to start merging from, this function uses a recursive flood
 * fill to merge any other connected puddles by assigning the merge id to them.
 * The recursion stops when a wall, empty space, or an already merged grid
 * cell is hit, and the recursion continues across any cells with puddle ids
 * that are not yet merged.
 */
void merge_recursive(grid_t grid, int row, int col, int width, int merge)
{
    /* The 8 possible adjacent locations encoded into row, col offsets */
    int rowoff[] = { 1, -1,  0,  0,  1,  1, -1, -1 };
    int coloff[] = { 0,  0,  1, -1,  1, -1,  1, -1 };

    /*
     * Stop recursion on out of bounds. There's no max height check here
     * because there will always be a floor beneath us; otherwise the puddle
     * above that initiated the merge in the first place would have never
     * formed.
     */
    if(row < 0 || col < 0 || col >= width) {
        return;
    }

    /* Merge current grid cell */
    grid[row][col] = merge;

    /* Merge current grid cell and recurse in every direction */
    for(int dir = 0; dir < 8; dir++) {
        int newrow = row + rowoff[dir];
        int newcol = col + coloff[dir];
        int id = grid[newrow][newcol];
        
        /* Stop recursion on wall, empty space, or already merged puddle */
        if(id == 0 || id == MAXINT || id == merge) {
            continue;
        }
        
        merge_recursive(grid, newrow, newcol, width, merge);
    }    
}

/* 
 * Return true if the grid location (row, col) really is a hole that will let
 * water drain out. Return false if the location is a wall since a wall will
 * always support water. If the location is another pool, then return true
 * (can't hold water) if the other pool has already reached its max height;
 * otherwise return false (will hold water) because the other pool is still
 * allowed to increase in height. If another pool is present, we also set
 * the "merge" variable to its id so that the pool above can be assigned the
 * same id as this one. This merging behavior is necessary to "transfer"
 * max height information (i.e. static water pressure acts on all connected
 * pools).
 */
bool check_hole(grid_t grid, int row, int col, int &merge,
    heightset_t &heightset)
{
    int id = grid[row][col];

    /* If hole drains into empty space, then this pool can't hold water */
    if(id == 0) {
        return true;
    }
    
    /* If there is a solid wall beneath us, then it'll hold water */
    if(id == MAXINT) {
        return false;
    }
    
    /* If pool beneath us reached it's max height, then it can't hold water */
    if(heightset.find(id) != heightset.end()) {
        return true;
    }
    
    /* Since the pool beneath can still grow; merge and use common id */     
    merge = id;
    return false;
}

/*
 * Rotate the entire grid 90 degrees to the right. While at it, all puddle
 * ids are reset back to 0 (i.e. empty spaces) to prepare for the next
 * analysis round. The width and height are also swapped to reflect the
 * new geometry. Finally, a local temporary grid copy is used while performing
 * the rotation.
 */
void rotate_grid(grid_t grid, int &width, int &height)
{
    grid_t temp;
    swap(width, height);
    memcpy(temp, grid, sizeof(grid_t));

    for(int row = 0; row < height; row++) {
        for(int col = 0; col < width; col++) {
            int oldid = temp[width - col - 1][row];                    
            grid[row][col] = oldid == MAXINT ? MAXINT : 0;
        }
    }
}

/*
 * Scan across (from left to right) a single "row" in the "grid" and mark any
 * puddles that can potentially hold water. To hold water, the puddle must have
 * walls and it must not have any holes that drain into empty space. The grid
 * locations of the puddle are marked with "count" and the the global "count"
 * is incremented so the next puddle can get a unique number. If the puddle
 * does have holes but they drain into another puddle beneath, then this
 * puddle may or may not merge with the one below (see check_hole).
 */
void scan_line(grid_t grid, int row, int width, int &count,
    heightset_t &heightset)
{
    int start, end = 0;

    /* Keep running until the entire row is analyzed */
    while(end < width) {
        int merge = MAXINT;

        /* Skip over blank spaces that can't hold any water */
        for(start = end; start < width; start++) {
            if(grid[row][start] == MAXINT) {
                break;
            }
            check_height(grid, row, start, width, heightset);
        }

        /* Skip over the solid wall that will hold the water in */
        for(; start < width; start++) {
            if(grid[row][start] == 0) {
                break;
            }
        }

        /*
         * Check for any holes beneath this row. Note that we don't have to
         * check the lower-right space because the next loop iteration will
         * take care of that. If no holes are found and we find a wall to the
         * right of the pool, then we can mark the pool with either a new
         * "count" id or we can merge it with the pool beneath us.
         */
        for(end = start; end < width; end++) {

            /* Check for holes diretly beneath and to the lower left */
            if(check_hole(grid, row + 1, end, merge, heightset)) {
                break;
            }
            if(check_hole(grid, row + 1, end - 1, merge, heightset)) {
                break;
            }

            /*
             * If new wall found to hold the right side of the puddle, then mark
             * the [start, end) interval on this as either a new or a merged
             * puddle. If merging this puddle with one below, there may also
             * be other unrelated puddles under this one, therefore we have to
             * descent and merge those to ourselves as well.
             */
            if(grid[row][end] == MAXINT) {
                int id = merge;
            
                /* If not merging, use the next higher "count" as puddle id */
                if(merge == MAXINT) {
                    count++;
                    id = count;
                }
                
                /* Mark this puddle as viable */
                for(; start < end; start++) {
                    grid[row][start] = id;
                    
                    /* If merging, recursively merge all puddles below */
                    if(merge == id) {
                        merge_recursive(grid, row, start, width, id);
                    }
                }
                
                break;
            }
        }
        
        /* If pool couldn't hold water, set max height for pools below */
        for(int i = start; i < end; i++) {
            check_height(grid, row, i, width, heightset);
        }
    }
    
    /* Correct any pools that may have grown too high too early */
    for(int i = 0; i < width; i++) {
        int id = grid[row][i];
        
        if(id != 0 && id != MAXINT) {
            if(heightset.find(id) != heightset.end()) {
                grid[row][i] = 0;
            }
        }
    }
}

/* Main body of program */
void process(void)
{
    int data_num, data_idx;

    /* Read how many data sets to process */
    cin >> data_num;
    
    /* Process each data set separately */
    for(data_idx = 0; data_idx < data_num; data_idx++) {
        int height, width, count = 0;
        vector<int> results;
        grid_t grid;
                
        cin >> height >> width;
        ASSERT(1 <= height && height <= MAXSIZE);
        ASSERT(1 <= width && width <= MAXSIZE);
        
        /*
         * Read in the input layout but convert "." spacezs to 0 and "X" to
         * MAXINT. During the analysis phase, as puddles get identified they
         * are assigned integers starting from 1.
         */
        for(int row = 0; row < height; row++) {
            for(int col = 0; col < width; col++) {
                char c;
                
                cin >> c;
                ASSERT(c == '.' || c == 'X');
                grid[row][col] = c == '.' ? 0 : MAXINT;                
            }
        }
                
        /* Analyze the grid from each of the four directions */
        for(int rot_idx = 0; rot_idx < 4; rot_idx++) {
            heightset_t heightset;
#ifdef STEP
            cerr << "Initial layout (rotation " << rot_idx << ")" << endl;
            print_grid(grid, height, width, false, heightset);
#endif        
            /* Scan from bottom to top identifying all puddles */
            for(int row = height - 2; row >= 0; row--) {
                scan_line(grid, row, width, count, heightset);
#ifdef STEP
                cerr << "Scanning row " << row << endl;
                print_grid(grid, height, width, false, heightset);
#endif        
            }

            /* Assign max heights to any puddles open at the top */
            for(int col = 0; col < width; col++) {
                check_height(grid, -1, col, width, heightset);
            }

#if defined(DEBUG) || defined(STEP)
            cerr << "Water layout (rotation " << rot_idx << ")" << endl;
            print_grid(grid, height, width, true, heightset);        
#endif
            /* Count retained water and add to result vector */
            results.push_back(count_water(grid, height, width, heightset));

            /* Rotate and reset grid for next analysis */
            rotate_grid(grid, width, height);
        }        


        /* Print out the results in descending sorted order */
        sort(results.begin(), results.end(), greater<int>());
        for(int i = 0; i < results.size(); i++) {
            cout << results[i];
            if (i < results.size() - 1) {
                cout << " ";
            }
#if defined(DEBUG) || defined(STEP)
            cerr << results[i] << " ";
#endif        
        }
            cout << endl;
#if defined(DEBUG) || defined(STEP)
            cerr << endl << endl;
#endif        
    }    
}

/* Run program and print out any exceptions that occur */
int main(void)
{
    /* Throw exceptions on EOF or failed data extraction in >> operator */
    cin.exceptions(ios::eofbit | ios::failbit);

    /* Run main body of code */
    try {
        process();
    }
    
    /* Catch unexpected EOF or bad input data */
    catch(ios::failure const &e) {
        cerr << "Unexpected EOF or data type mismatch on input" << endl;
    }

    return 0;
}

]]></solution>
<![CDATA[]]>
</item>
<item>
<title><![CDATA[Wandering Aimlessly]]></title>
<time_limit><![CDATA[1]]></time_limit>
<memory_limit><![CDATA[128]]></memory_limit>

<description><![CDATA[<p>Most console role-playing games, such as the famous <i>Final Fantasy</i> and <i>Dragon Quest</i> games, have towns filled with inconsequential characters that wander around aimlessly, waiting for the player to speak to them.</p>
<p>You've been tasked with the development of the town character (or  <i>NPC</i>) movement handling for a new game.</p>
<p>Any given NPC has a movement script with a few simple commands:
<table border="1" align="center">
    <tbody>
        <tr>
            <td>Command</td>
            <td>Behavior</td>
        </tr>
        <tr>
            <td><tt>NORTH x</tt></td>
            <td>Move NORTH (up) <tt>x</tt> steps, one per turn</td>
        </tr>
        <tr>
            <td><tt>SOUTH x</tt></td>
            <td>Move south (down) <tt>x</tt> steps, one per turn</td>
        </tr>
        <tr>
            <td><tt>EAST x</tt></td>
            <td>Move east (right) <tt>x</tt> steps, one per turn</td>
        </tr>
        <tr>
            <td><tt>WEST x</tt></td>
            <td>Move west (left) <tt>x</tt> steps, one per turn</td>
        </tr>
        <tr>
            <td><tt>PAUSE x</tt></td>
            <td>Stay in the current location <tt>x</tt> turns</td>
        </tr>
    </tbody>
</table>
Note that the individuals who write the NPC movement scripts aren't the most careful coders in the world.  Sometimes the scripts have the NPCs attempting to walk through walls and other barriers or even off the edge of the map.  When this occurs, all of the steps of movement that would put the NPC in such an invalid location are converted into <tt>PAUSE</tt>s. For example, given this small snippet of a town:</p>
<pre>
...#
.1.#
...#
</pre>
<p>if the NPC represented by the 1 had</p>
<tt>EAST 5</tt>
<p>as their next command, that would be converted on the fly to</p>
<tt>EAST 1</tt>
<p>followed by</p>
<tt>PAUSE 4</tt>
<p>.  This processing must be done before determining whether a script is</p>
<i>cyclic</i>
<p>or</p>
<i>reversible</i>
<p>.</p>
<p>A script is <i>cyclic</i> if, at the end of the script, the NPC back in their starting position.  This sort of script is simply looped indefinitely.  The other type of script is <i>reversible</i>; if, at the end of the script, the NPC is <i>not</i> back in their starting position, they then run a reversed copy of the script, with directions switched (<tt>WEST</tt> becomes <tt>EAST</tt>, <tt>EAST</tt> becomes <tt>WEST</tt>, <tt>NORTH</tt> becomes <tt>SOUTH</tt>, and <tt>SOUTH</tt> becomes <tt>NORTH</tt>) and <tt>PAUSE</tt>s intact.  The end result is the character returning to their starting location.
<table border="1" align="center">
    <tbody>
        <tr>
            <td>Original script segment</td>
            <td>Reversed script segment</td>
        </tr>
        <tr>
            <td><tt> SOUTH 1<br />
            PAUSE 5<br />
            EAST 1 </tt></td>
            <td><tt> WEST 1<br />
            PAUSE 5<br />
            NORTH 1 </tt></td>
        </tr>
    </tbody>
</table>
</p>
<p>For the sake of this problem, you can assume that no NPCs will ever attempt to occupy the same location on the map at the same time, although one may enter a location on the same turn as a different NPC leaves it, which is valid behavior.</p>
<p>The simulation starts at turn 0; your task is to show, given a map and set of NPCs with their scripts, what the simulation looks like after a large number of turns have passed.</p>]]></description>
<input><![CDATA[<p>Input to this problem will begin with a line containing a single integer <i>N</i> (1 &le; <i>N</i> &le; 100) indicating the number of data sets. Each data set consists of the following components:</p>
<ul>
    <li>A line containing a single integer <i>C</i> (1 &le; <i>C</i> &le; 35) indicating the number of NPCs in this town;</li>
    <li>A line containing two integers <i>H</i> and <i>W</i> (1 &le; <i>H</i>, <i>W</i> &le; 40) representing the height and width of the town;</li>
    <li><i>H</i> lines representing the town, each with <i>W</i> characters, with:
    <ul>
        <li>Hash marks (<tt>#</tt>) representing walls and other impassible     obstructions;</li>
        <li>Periods (<tt>.</tt>) representing open spaces; and</li>
        <li>digits and capital letters representing the starting location of the NPCs, with <tt>1</tt> representing the first one, <tt>2</tt> representing the second (if present), and so on through the digits, then <tt>A</tt> representing the tenth NPC (if present), <tt>B</tt> representing the eleventh (if present), and so on.  The space under an NPC's starting location is open.</li>
    </ul>
    </li>
    <li><i>C</i> sets of lines describing the NPC scripts; each set consists of:
    <ul>
        <li>A line containing a single character and an integer <i>L</i> (1 &lt; <i>L</i> &lt; 20), separated by spaces, where the character is one of the digits or letters used on the map to represent a particular NPC, and <i>L</i> is the length of that NPC's script; and</li>
        <li><i>L</i> lines representing the NPC's script, in the format given above, with no value lower than 1 or higher than 40.</li>
    </ul>
    </li>
    <li>A line containing a single integer <i>T</i> (1 &le; <i>T</i> &le; 1000000) indicating a number of turns to calculate</li>
</ul>]]></input> 
<output><![CDATA[<p>For each data set in the output, output the heading &quot;<tt>DATA SET #<i>k</i></tt>&quot; where <i>k</i> is 1 for the first data set, 2 for the second, and so on. the next <i>H</i> lines, output a representation of the town map, using the same symbols as the input format described above, with the NPCs in the correct locations after the given number of turns have passed.</p>]]></output>
<sample_input><![CDATA[1
2
5 5
...#.
.1.#.
...#.
...2.
.....
1 4
EAST 5
SOUTH 1
PAUSE 1
WEST 1
2 4
EAST 1
SOUTH 1
WEST 1
NORTH 1
22
]]></sample_input>
<sample_output><![CDATA[DATA SET #1
...#.
...#.
..1#.
.....
....2
]]></sample_output>
<test_input><![CDATA[7
2
5 5
...#.
.1.#.
...#.
...2.
.....
1 4
EAST 5
SOUTH 1
PAUSE 1
WEST 1
2 4
EAST 1
SOUTH 1
WEST 1
NORTH 1
22
35
40 40
...................#....................
.....1.............#....................
....4.2............#....................
.....3.............#....................
...................#....................
...................#....................
...................#....................
...................#........I...........
.....6789A.........#.........###........
.....BCDEF.........#.........#G#........
...................#.........###........
...................#.........#H#........
...................#.........###........
...................#............J.......
...................#....................
...................#....................
...................#.....K..............
...................#.....L..............
...................#.....M..............
...................#.....N..............
...................#.....O..............
...................#....................
...................#....................
..................5#....................
########################################
...................#....................
........P..........#....................
........Q..........#....................
........R..........#....................
........S..........#.......WX...........
........T..........#.......ZY...........
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
U.................V#....................
4 5
NORTH 1
EAST 2
SOUTH 2
WEST 2
NORTH 1
3 5
WEST 1
NORTH 2
EAST 2
SOUTH 2
WEST 1
2 5
SOUTH 1
WEST 2
NORTH 2
EAST 2
SOUTH 1
1 5
EAST 1
SOUTH 2
WEST 2
NORTH 2
EAST 1
5 20
SOUTH 40
EAST 40
PAUSE 40
NORTH 1
WEST 1
SOUTH 40
EAST 40
PAUSE 40
NORTH 1
WEST 1
SOUTH 40
EAST 40
PAUSE 40
NORTH 1
WEST 1
SOUTH 40
EAST 40
PAUSE 40
NORTH 1
WEST 1
6 2
SOUTH 1
NORTH 1
7 2
SOUTH 1
NORTH 1
8 2
SOUTH 1
NORTH 1
9 2
SOUTH 1
NORTH 1
A 2
SOUTH 1
NORTH 1
B 2
SOUTH 1
NORTH 1
C 2
SOUTH 1
NORTH 1
D 2
SOUTH 1
NORTH 1
E 2
SOUTH 1
NORTH 1
F 2
SOUTH 1
NORTH 1
G 4
NORTH 1
SOUTH 1
WEST 1
WEST 40
H 1
PAUSE 40
I 4
EAST 4
SOUTH 6
WEST 4
NORTH 6
J 4
WEST 4
NORTH 6
EAST 4
SOUTH 6
K 3
WEST 1
EAST 2
WEST 1
L 3
WEST 2
EAST 4
WEST 2
M 3
WEST 3
EAST 6
WEST 3
N 3
WEST 4
EAST 8
WEST 4
O 3
WEST 5
EAST 10
WEST 5
P 3
WEST 1
EAST 2
PAUSE 1
Q 3
WEST 2
EAST 4
PAUSE 2
R 3
WEST 3
EAST 6
PAUSE 3
S 3
WEST 4
EAST 8
PAUSE 4
T 3
WEST 5
EAST 10
PAUSE 5
V 3
EAST 1
SOUTH 1
WEST 1
U 3
WEST 1
SOUTH 1
NORTH 3
W 4
EAST 1
SOUTH 1
WEST 1
NORTH 1
X 4
SOUTH 1
WEST 1
NORTH 1
EAST 1
Y 4
WEST 1
NORTH 1
EAST 1
SOUTH 1
Z 4
NORTH 1
EAST 1
SOUTH 1
WEST 1
999999
35
40 40
...................#....................
.....1.............#....................
....4.2............#....................
.....3.............#....................
...................#....................
...................#....................
...................#....................
...................#........I...........
.....6789A.........#.........###........
.....BCDEF.........#.........#G#........
...................#.........###........
...................#.........#H#........
...................#.........###........
...................#............J.......
...................#....................
...................#....................
...................#.....K..............
...................#.....L..............
...................#.....M..............
...................#.....N..............
...................#.....O..............
...................#....................
...................#....................
..................5#....................
########################################
...................#....................
........P..........#....................
........Q..........#....................
........R..........#....................
........S..........#.......WX...........
........T..........#.......ZY...........
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
U.................V#....................
4 5
NORTH 1
EAST 2
SOUTH 2
WEST 2
NORTH 1
3 5
WEST 1
NORTH 2
EAST 2
SOUTH 2
WEST 1
2 5
SOUTH 1
WEST 2
NORTH 2
EAST 2
SOUTH 1
1 5
EAST 1
SOUTH 2
WEST 2
NORTH 2
EAST 1
5 20
SOUTH 40
EAST 40
PAUSE 40
NORTH 1
WEST 1
SOUTH 40
EAST 40
PAUSE 40
NORTH 1
WEST 1
SOUTH 40
EAST 40
PAUSE 40
NORTH 1
WEST 1
SOUTH 40
EAST 40
PAUSE 40
NORTH 1
WEST 1
6 2
SOUTH 1
NORTH 1
7 2
SOUTH 1
NORTH 1
8 2
SOUTH 1
NORTH 1
9 2
SOUTH 1
NORTH 1
A 2
SOUTH 1
NORTH 1
B 2
SOUTH 1
NORTH 1
C 2
SOUTH 1
NORTH 1
D 2
SOUTH 1
NORTH 1
E 2
SOUTH 1
NORTH 1
F 2
SOUTH 1
NORTH 1
G 4
NORTH 1
SOUTH 1
WEST 1
WEST 40
H 1
PAUSE 40
I 4
EAST 4
SOUTH 6
WEST 4
NORTH 6
J 4
WEST 4
NORTH 6
EAST 4
SOUTH 6
K 3
WEST 1
EAST 2
WEST 1
L 3
WEST 2
EAST 4
WEST 2
M 3
WEST 3
EAST 6
WEST 3
N 3
WEST 4
EAST 8
WEST 4
O 3
WEST 5
EAST 10
WEST 5
P 3
WEST 1
EAST 2
PAUSE 1
Q 3
WEST 2
EAST 4
PAUSE 2
R 3
WEST 3
EAST 6
PAUSE 3
S 3
WEST 4
EAST 8
PAUSE 4
T 3
WEST 5
EAST 10
PAUSE 5
V 3
EAST 1
SOUTH 1
WEST 1
U 3
WEST 1
SOUTH 1
NORTH 3
W 4
EAST 1
SOUTH 1
WEST 1
NORTH 1
X 4
SOUTH 1
WEST 1
NORTH 1
EAST 1
Y 4
WEST 1
NORTH 1
EAST 1
SOUTH 1
Z 4
NORTH 1
EAST 1
SOUTH 1
WEST 1
1
1
1 1
1
1 4
NORTH 1
SOUTH 1
WEST 1
EAST 1
1000000
35
40 40
123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.....
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
1 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
2 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
3 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
4 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
5 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
6 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
7 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
8 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
9 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
A 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
B 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
C 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
D 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
E 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
F 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
G 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
H 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
I 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
J 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
K 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
L 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
M 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
N 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
O 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
P 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
Q 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
R 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
S 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
T 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
U 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
V 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
W 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
X 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
Y 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
Z 20
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
SOUTH 40
NORTH 40
999980
35
40 40
1.......................................
2.......................................
3.......................................
4.......................................
5.......................................
6.......................................
7.......................................
8.......................................
9.......................................
A.......................................
B.......................................
C.......................................
D.......................................
E.......................................
F.......................................
G.......................................
H.......................................
I.......................................
J.......................................
K.......................................
L.......................................
M.......................................
N.......................................
O.......................................
P.......................................
Q.......................................
R.......................................
S.......................................
T.......................................
U.......................................
V.......................................
W.......................................
X.......................................
Y.......................................
Z.......................................
........................................
........................................
........................................
........................................
........................................
1 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
2 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
3 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
4 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
5 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
6 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
7 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
8 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
9 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
A 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
B 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
C 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
D 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
E 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
F 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
G 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
H 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
I 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
J 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
K 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
L 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
M 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
N 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
O 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
P 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
Q 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
R 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
S 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
T 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
U 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
V 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
W 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
X 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
Y 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
Z 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
999980
35
40 40
1...................#...................
2...................#...................
3...................#...................
4...................#...................
5...................#...................
6...................#...................
7...................#...................
8...................#...................
9...................#...................
A...................#...................
B...................#...................
C...................#...................
D...................#...................
E...................#...................
F...................#...................
G...................#...................
H...................#...................
I...................#...................
J...................#...................
K...................#...................
L...................#...................
M...................#...................
N...................#...................
O...................#...................
P...................#...................
Q...................#...................
R...................#...................
S...................#...................
T...................#...................
U...................#...................
V...................#...................
W...................#...................
X...................#...................
Y...................#...................
Z...................#...................
....................#...................
....................#...................
....................#...................
....................#...................
....................#...................
1 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
2 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
3 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
4 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
5 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
6 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
7 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
8 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
9 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
A 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
B 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
C 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
D 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
E 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
F 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
G 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
H 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
I 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
J 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
K 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
L 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
M 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
N 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
O 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
P 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
Q 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
R 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
S 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
T 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
U 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
V 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
W 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
X 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
Y 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
Z 20
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
EAST 40
WEST 40
999970
]]></test_input>
<test_output><![CDATA[DATA SET #1
...#.
...#.
..1#.
.....
....2
DATA SET #2
...................#....................
....1.2............#....................
...................#....................
....4.3............#....................
...................#....................
...................#....................
...................#....................
...................#....................
...................#........I###........
.....6789A.........#.........#G#........
.....BCDEF.........#.........###........
...................#.........#H#........
...................#.........###J.......
...................#....................
...................#....................
...................#....................
...................#......K.............
...................#......L.............
...................#..M.................
...................#......N.............
...................#......O.............
...................#....................
...................#....................
.................5.#....................
########################################
...................#....................
.......P...........#....................
.......Q...........#....................
...........R.......#....................
.......S...........#.......XY...........
.......T...........#.......WZ...........
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
U................V.#....................
DATA SET #3
...................#....................
....4.1............#....................
...................#....................
....3.2............#....................
...................#....................
...................#....................
...................#....................
...................#.........I..........
...................#.........###........
.....6789A.........#.........#G#........
.....BCDEF.........#.........###........
...................#.........#H#........
...................#.........###........
...................#...........J........
...................#....................
...................#....................
...................#....K...............
...................#....L...............
...................#....M...............
...................#....N...............
...................#....O...............
...................#....................
...................#....................
..................5#....................
########################################
...................#....................
.......P...........#....................
.......Q...........#....................
.......R...........#....................
.......S...........#.......ZW...........
.......T...........#.......YX...........
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
...................#....................
U.................V#....................
DATA SET #4
1
DATA SET #5
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.....
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
DATA SET #6
...................1....................
...................2....................
...................3....................
...................4....................
...................5....................
...................6....................
...................7....................
...................8....................
...................9....................
...................A....................
...................B....................
...................C....................
...................D....................
...................E....................
...................F....................
...................G....................
...................H....................
...................I....................
...................J....................
...................K....................
...................L....................
...................M....................
...................N....................
...................O....................
...................P....................
...................Q....................
...................R....................
...................S....................
...................T....................
...................U....................
...................V....................
...................W....................
...................X....................
...................Y....................
...................Z....................
........................................
........................................
........................................
........................................
........................................
DATA SET #7
.........1..........#...................
.........2..........#...................
.........3..........#...................
.........4..........#...................
.........5..........#...................
.........6..........#...................
.........7..........#...................
.........8..........#...................
.........9..........#...................
.........A..........#...................
.........B..........#...................
.........C..........#...................
.........D..........#...................
.........E..........#...................
.........F..........#...................
.........G..........#...................
.........H..........#...................
.........I..........#...................
.........J..........#...................
.........K..........#...................
.........L..........#...................
.........M..........#...................
.........N..........#...................
.........O..........#...................
.........P..........#...................
.........Q..........#...................
.........R..........#...................
.........S..........#...................
.........T..........#...................
.........U..........#...................
.........V..........#...................
.........W..........#...................
.........X..........#...................
.........Y..........#...................
.........Z..........#...................
....................#...................
....................#...................
....................#...................
....................#...................
....................#...................
]]></test_output>
<hint><![CDATA[]]></hint>
<source><![CDATA[2008 ACM ICPC South Central USA Regional Programming Contest]]></source>
<solution language="C++"><![CDATA[#include <ctype.h>
#include <algorithm>
#include <iostream>
#include <utility>
#include <vector>
#include <string>
#include <map>

using namespace std;

/*
 * DEBUG ONLY: If compiled -DDEBUG, the program will show the transformed
 * scripts (on stderr) for each NPC that avoid collisions and are always
 * inherently cyclic. If compiled -DSTEP, the program will show the town state
 * (also on stderr) after every single turn. Note that using -DSTEP makes the
 * entire program too slow to actually finish running the master data sets.
 * With -DSTEP we no longer do the "modulo optimization" that takes advantage
 * of cyclic nature of the NPCs walk scripts.
 */

/* SANITY CHECK: assertion macro for verifying input data and internal state */
#define ASSERT(e) { if(!(e)) { cerr << #e << endl; throw; } }

/* Max width/height of a town */
#define MAXSIZE 40

/* Return the minimum of two values */
#define min(a,b) ((a) < (b) ? (a) : (b))

/* Generic integer pair used for several things in the program */
typedef pair<int, int> coord_t;

/* Dictionary to map verb names to indices into the VERB array */
map<string, int> NAMES;

/* DEBUG ONLY: Array mapping VERB array indices to string names for printing */
const char *PRINT[] = {
    "NORTH", "SOUTH", "EAST", "WEST", "PAUSE"
};

/* These are the "reversed" verb numbers for each of the commands in NAMES[] */
const int REVERSE[] = { 1, 0, 3, 2, 4 };

/*
 * The effect that each of the command verbs has on a NPC's position can be
 * encoded in terms of a row and column offset that's applied to the position
 * every turn. This array is in the same order as NAMES to facilitate easy
 * lookup. The offsets are of the form (row, col).
 */
const coord_t VERB[] = {
    coord_t(-1, 0), coord_t(1, 0), coord_t(0, 1), coord_t(0, -1), coord_t(0, 0)
};

/* Index into VERB[] for the pause command */
#define PAUSE 4

/*
 * A command is a (verb, value) pair where "verb" is an integer between 0 and 4
 * (matching the VERB[] array) and "value" is an integer indicating how far to
 * move or how long to pause for. The command map associates each command list
 * with the NPC single character id as read from the input data set.
 */
typedef vector<coord_t> cmdlist_t;
typedef map<char, cmdlist_t> cmdmap_t;

/* Maps an NPC char id (number or letter) to the NPC position as (row, col) */
typedef map<char, coord_t> npcmap_t;

/*
 * The array is used to hold the town layout but only for tracking the
 * open vs wall spaces. Actual NPC locations are only stored in a datalist_t
 * object since that's an easier format to update as the NPCs move around.
 */
typedef char grid_t[MAXSIZE][MAXSIZE];

/*
 * Print the town layout to the "out" stream and show the location of every
 * NPC in "npcmap" by printing the appropriate NPC character on top of the
 * layout.
 */
void output(ostream &out, grid_t grid, npcmap_t &npcmap, int width, int height)
{
    npcmap_t::iterator i;

    /* Temporarily add the NPCs to the grid for printing */
    for(i = npcmap.begin(); i != npcmap.end(); ++i) {
        grid[i->second.first][i->second.second] = i->first;
    }

    for(int row = 0; row < height; row++) {
        for(int col = 0; col < width; col++) {
            out << grid[row][col];
        }
        out << endl;
    }    

    /* Reset NPC locations back to empty spaces */
    for(i = npcmap.begin(); i != npcmap.end(); ++i) {
        grid[i->second.first][i->second.second] = '.';
    }
}

/*
 * DEBUG ONLY: Simulate one turn for a given NPC. The current command in
 * "cmdlist" (current as determined by "instptr") is executed and the NPC
 * position "pos" updated. Once the current command has finished executing,
 * the "instptr" is advanced (possibly wrapping around) to the next command.
 */ 
void simulate_one(grid_t grid, int width, int height, coord_t &instptr,
    cmdlist_t &cmdlist, coord_t &pos)
{
    int ip = instptr.first;
    
    /*
     * If NPC's command is finished, increment instruction pointer but skip
     * over any commands who had their delay value reduced to zero by fixup().
     */
    while(instptr.second == 0) {
        ip = (ip + 1) %  cmdlist.size();
        instptr.first = ip;
        instptr.second = cmdlist[ip].second;
    }

    /* Execute current command and decrement instruction delay */
    pos.first += VERB[cmdlist[ip].first].first;
    pos.second += VERB[cmdlist[ip].first].second;
    instptr.second--;
}

/*
 * DEBUG ONLY: Simulate one turn across all NPCs in the data set. The
 * "instptr" map holds "instruction pointers" for every NPC. Every
 * instruction pointer is a pair (cmdnum, delay) where "cmdnum" is an index
 * into cmdmap of the currently executing command and "delay" is the number
 * of turns remaining until the current command finishes executing.
 */
void simulate_all(grid_t grid, int width, int height, npcmap_t &instptr,
    cmdmap_t &cmdmap, npcmap_t &npcmap)
{
    npcmap_t::iterator i;

    /* Move each NPC by one turn */
    for(i = npcmap.begin(); i != npcmap.end(); ++i) {        
        char npc = i->first;
        
        simulate_one(grid, width, height, instptr[npc],
            cmdmap[npc], npcmap[npc]);
    }
}

/*
 * Execute a command "cmd" a single turn by updating the position of "oldpos" If
 * this command caused the NPC to hit a solid object or the edge of the map,
 * then return true and don't update "oldpos". Used by fixup() to detect
 * collisions in the script and to re-write the script accordingly.
 */
bool execute(coord_t cmd, coord_t &oldpos, grid_t grid, int width, int height)
{
    coord_t pos;

    pos.first = oldpos.first + VERB[cmd.first].first;
    pos.second = oldpos.second + VERB[cmd.first].second;

    if(pos.first < 0 || pos.second < 0 || pos.first >= height ||
        pos.second >= width || grid[pos.first][pos.second] != '.')
        return true;
    
    oldpos = pos;
    return false;
}

/*
 * Execute the "cmdlist" script one time through and if any collisions are
 * found, re-write it to a form that avoids the collisions all together by
 * inserting the appropriate number of PAUSEs. Also if the script is not
 * already inherently cyclic, make it so by appending a reversed version
 * of the collision-free script that will return the NPC to its original
 * location. Finally, this function computes the total cycle length (in turns)
 * of the NPC's walk script and returns it. The cycle length is used for
 * a modulo optimization later on.
 */
int fixup(grid_t grid, coord_t pos, int width, int height, cmdlist_t &cmdlist)
{
    cmdlist_t::iterator i;
    coord_t start = pos;
    
    /*
     * Execute through all the commands in the list and run each command for the
     * specified number of turns. If we hit a wall or edge, split this command
     * into a shortened original and a PAUSE for the remainder of the
     * "collision" time.
     */
    for(i = cmdlist.begin(); i != cmdlist.end(); ++i) {
        coord_t cmd = *i;
        
        for(int j = 0; j < cmd.second; j++) {
            if(execute(cmd, pos, grid, width, height)) {
                *i = coord_t(cmd.first, j);
                ++i;
                i = cmdlist.insert(i, coord_t(PAUSE, cmd.second - j));
                break;
            }
        }
    }
    
    /* If the script is reversible, make it cyclic */
    if(pos != start) {
        int size = cmdlist.size();
        cmdlist.resize(size * 2);
        
        /* Append a duplicated and reversed command list */
        copy(&cmdlist[0], &cmdlist[size], &cmdlist[size]);
        reverse(&cmdlist[size], &cmdlist[size * 2]);
        
        /* Reverse directions of individual commands in list */
        for(int i = size; i < size * 2; i++) {
            cmdlist[i].first = REVERSE[cmdlist[i].first];
        }
    }
    
    /* Calculate the total cycle length of the walk script */
    int total = 0;
    for(i = cmdlist.begin(); i != cmdlist.end(); ++i) {
        total += i->second;
    }
    return total;
}

/* Main body of program */
void process(void)
{
    int data_num, data_idx;

    /* Initialize the global NAMES[] dictionary */
    NAMES["NORTH"] = 0;
    NAMES["SOUTH"] = 1;
    NAMES["EAST"] = 2;
    NAMES["WEST"] = 3;
    NAMES["PAUSE"] = 4;
    
    /* Read how many data sets to process */
    cin >> data_num;
    
    /* Process each data set separately */
    for(data_idx = 0; data_idx < data_num; data_idx++) {   
        int npc_num, npc_idx;     /* For looping over command lists */
        int width, height, turns; /* Parameters from data set input */
        npcmap_t npcmap;          /* Tracks position of each NPC */
        npcmap_t instptr;         /* DEBUG ONLY: current command during sim */
        cmdmap_t cmdmap;          /* Command list per NPC */
        map<char, int> cycle;     /* Total walk cycle length per NPC */        
        grid_t grid;              /* Town layout */
        
        cin >> npc_num >> height >> width;
        ASSERT(1 <= npc_num && npc_num <= 35);
        ASSERT(1 <= height && height <= 40);
        ASSERT(1 <= width && width <= 40);
        
        /* Read in the town grid */
        for(int row = 0; row < height; row++) {
            for(int col = 0; col < width; col++) {
                char npc;
                
                cin >> npc;
                
                /* Numbers and letters are NPC locations; record in npcmap */
                if(isalnum(npc)) {
                    npcmap[npc] = coord_t(row, col);
                    grid[row][col] = '.';
                }
                
                /* Otherwise it's a wall or empty space; record in grid */
                else {
                    ASSERT(npc == '.' || npc == '#');
                    grid[row][col] = npc;
                }
            }
        }
        
#if defined(STEP) || defined(DEBUG)
        cerr << "DATA SET #" << data_idx + 1 << endl;
#endif        
        /* Read in the command scripts for each NPC */
        for(npc_idx = 0; npc_idx < npc_num; npc_idx++) {            
            int cmd_idx, cmd_num;
            char npc;

            /* Read NPC id and command count */
            cin >> npc >> cmd_num;
            ASSERT(npcmap.find(npc) != npcmap.end());
            ASSERT(1 <= cmd_num && cmd_num <= 20);
            
            /* DEBUG ONLY: Init "instruction pointer" used by simulate_all() */
            instptr[npc] = coord_t(-1, 0);

            /* Read the list of commands into cmdmap[npc] list */
            for(cmd_idx = 0; cmd_idx < cmd_num; cmd_idx++) {
                string word;
                int value;
                
                cin >> word >> value;
                ASSERT(NAMES.find(word) != NAMES.end());
                ASSERT(1 <= value <= 40);
                
                cmdmap[npc].push_back(coord_t(NAMES[word], value));
            }
            
            /* Detect collisions and make reversible walks cyclic */
            cycle[npc] = fixup(grid, npcmap[npc], width, height, cmdmap[npc]);
            
#if defined(STEP) || defined(DEBUG)
            /* DEBUG ONLY: Show transformed command list with no collisions */
            cerr << "Transformed script " << npc << ":" << endl;
            
            cmdlist_t::iterator i;
            for(i = cmdmap[npc].begin(); i != cmdmap[npc].end(); ++i) {
                cerr << PRINT[i->first] << " " << i->second << endl;
            }
            
            cerr << "Cycle length: " << cycle[npc] << endl << endl;
#endif
        }
        
        /* Read the number of turns to simulate for */
        cin >> turns;
        ASSERT(1 <= turns && turns <= 1000000);

#ifdef STEP
        /* DEBUG ONLY: Show initial grid layout before simulation */
        cerr << "Initial layout:" << endl;
        output(cerr, grid, npcmap, width, height);
        cerr << endl;

        /* DEBUG ONLY: Run a full simulation to show how NPCs move */
        for(int i = 0; i < turns; i++) {        
            simulate_all(grid, width, height, instptr, cmdmap, npcmap);
            
            cerr << "Turn " << i + 1 << ":" << endl;
            output(cerr, grid, npcmap, width, height);
            cerr << endl;
        }
#else
        /*
         * Because every NPC movement is cyclic, we can reduce the computation
         * time by separately simulating only "turns modulo cycle length" for
         * every NPC.
         */      
        for(npcmap_t::iterator i = npcmap.begin(); i != npcmap.end(); ++i) {
            int ip = 0;
            char npc = i->first;
            int npcturns = turns % cycle[npc];

            coord_t &pos = npcmap[npc];
            cmdlist_t &cmdlist = cmdmap[npc];
            
            /*
             * We can get a further optimization by executing a single command
             * per loop iteration and "scaling" the distance moved by the
             * command's "value".
             */
            while(npcturns) {                              
                int verb = cmdlist[ip].first;
                int value = min(npcturns, cmdlist[ip].second);

                /* Execute current command and decrement instruction delay */
                pos.first += VERB[verb].first * value;
                pos.second += VERB[verb].second * value;
                
                /* Advance to next instruction in command list */
                npcturns -= value;
                ip = (ip + 1) % cmdlist.size();
            }
        }
#endif     
        /* Show the final state of the town */
        cout << "DATA SET #" << data_idx + 1 << endl;
        output(cout, grid, npcmap, width, height);        
    }
} 


/* Run program and print out any exceptions that occur */
int main(void)
{
    /* Throw exceptions on failed data extraction in >> operator */
    cin.exceptions(ios::failbit);
    
    /* Run main body of code */
    try {
        process();
    }
    
    /* Catch unexpected EOF or bad input data */
    catch(ios::failure const &e) {
        cerr << "Unexpected EOF or data type mismatch on input" << endl;
    }

    return 0;
}

]]></solution>
<![CDATA[]]>
</item>
<item>
<title><![CDATA[Cables ... in Spaaace!]]></title>
<time_limit><![CDATA[20]]></time_limit>
<memory_limit><![CDATA[128]]></memory_limit>

<description><![CDATA[<p>Many science fiction stories take place on distant planets in galaxies far, far, away. Some of the best writers will spend time researching the relevant scientific fields of today to make their futuristic technology seem believable to a modern day audience. As a budding young writer participating in the National Novel Writing Month (NaNoWriMo) in November, you'd like to do some technological research as well to make sure your own SF universe is up to par.</p>
<p>In your own SF novel, humanity has spread out throughout the galaxy and has come to colonize many a planet. Aside from the obvious requirement of interstellar space flight in your book, you'd like to keep all other technologies, computers especially, similar to what is available in today's world. That means the computer networks on many of the colonized planets will still be designed by running copper or fiber optic cable between the computers.</p>
<p>Modern computer networks use packet switching which means that you do <b>not</b> have to physically run a separate cable between every pair of computers. It's enough that the computer network remains <i>strongly connected</i>. In other words, it's enough that for every pair of computers on the network, some path exists such that packets traveling to and fro between the computers can reach their destinations by being forwarded through any number of computers in-between.</p>
<p>This property of packet switching allows us to minimize how much cable has to be laid down to allow every computer on the network to communicate with every other. As a budding SF writer, you'd like to know the absolute minimum total length of cable that would be required to create a computer network between all the cities on your newly colonized planet, assuming there are no redundant or aggregate links in the network. When performing your calculations, you may assume that the planet is a perfect sphere, all the cables are run along the surface of the planet, and that no surface obstructions (like rivers or mountain ranges) exist to impede the run of cable.</p>
<p>The input to this problem will specify the diameter of the planet in question, and it will include a list of city coordinates given in degrees of</p>
<p><i>latitude</i></p>
<p>and</p>
<p><i>longitude</i></p>
<p>. For those who are not as cartographically savvy as they'd like, latitude is an angular measurement ranging from &minus;90&deg; at the South pole to +90&deg; at the North pole and with 0&deg; located at a planet's</p>
<p><i>equator</i></p>
<p>. Longitude is an angular measurement ranging between &minus;180&deg; and +180&deg; with 0&deg; specifying the</p>
<p><i>prime meridian</i></p>
<p>. By convention negative longitude represents locations to the West of the prime meridian, and positive longitude presents locations to the East.</p>]]></description>
<input><![CDATA[<p>Input to this problem will begin with a line containing a single integer <i>N</i> (1 &le; <i>N</i> &le; 100) indicating the number of data sets. Each data set consists of the following components:</p>
<ul>
    <li>A line containing a single decimal number <i>D</i> (1 &le; <i>D</i> &le; 1,000,000) specifying the diameter (in kilometers) of the planet in question.</li>
    <li>A line containing a single decimal number <i>L</i> (1 &le; <i>L</i> &le; 1,000,000) giving the total length of cable (in kilometers) available for building a network on the newly colonized planet.</li>
    <li>A line containing a single integer <i>C</i> (1 &le; <i>C</i> &le; 100) indicating the number of cities this planet contains.</li>
    <li>A series of <i>C</i> lines, each of which contains two decimal numbers of the form &quot;<i>X</i> <i>Y</i>&quot; respectively specifying the latitude and longitude (both in degrees) of one city with (&minus;90 &le; <i>X</i> &le; 90) and (&minus;180 &le; <i>X</i> &le; 180).</li>
</ul>]]></input> 
<output><![CDATA[<p>For each data set in the input, print a single line. Print either &quot;<tt>IS POSSIBLE</tt>&quot; if the available length of cable <i>L</i> is enough to network all the cities, or print &quot;<tt>IS NOT POSSIBLE</tt>&quot; if the available length of cable <i>L</i> is too short.</p>]]></output>
<sample_input><![CDATA[2
12742
5900
3
51.3 0
42.5 -75
48.8 3
12742
620
2
30.266 97.75
30.45 91.1333
]]></sample_input>
<sample_output><![CDATA[IS POSSIBLE
IS NOT POSSIBLE
]]></sample_output>
<test_input><![CDATA[22
12742
5900
3
51.3 0
42.5 -75
48.8 3
12742
620
2
30.266 97.75
30.45 91.1333
1000000
1000000
100
0 0
0 36
0 72
0 108
0 144
0 180
0 -36
0 -72
0 -108
0 -144
15 0
15 36
15 72
15 108
15 144
15 180
15 -36
15 -72
15 -108
15 -144
30 0
30 36
30 72
30 108
30 144
30 180
30 -36
30 -72
30 -108
30 -144
45 0
45 36
45 72
45 108
45 144
45 180
45 -36
45 -72
45 -108
45 -144
60 0
60 36
60 72
60 108
60 144
60 180
60 -36
60 -72
60 -108
60 -144
75 0
75 36
75 72
75 108
75 144
75 180
75 -36
75 -72
75 -108
75 -144
-15 0
-15 36
-15 72
-15 108
-15 144
-15 180
-15 -36
-15 -72
-15 -108
-15 -144
-30 0
-30 36
-30 72
-30 108
-30 144
-30 180
-30 -36
-30 -72
-30 -108
-30 -144
-45 0
-45 36
-45 72
-45 108
-45 144
-45 180
-45 -36
-45 -72
-45 -108
-45 -144
-60 0
-60 36
-60 72
-60 108
-60 144
-60 180
-60 -36
-60 -72
-60 -108
-60 -144
1000
12600
100
0 0
0 36
0 72
0 108
0 144
0 180
0 -36
0 -72
0 -108
0 -144
15 0
15 36
15 72
15 108
15 144
15 180
15 -36
15 -72
15 -108
15 -144
30 0
30 36
30 72
30 108
30 144
30 180
30 -36
30 -72
30 -108
30 -144
45 0
45 36
45 72
45 108
45 144
45 180
45 -36
45 -72
45 -108
45 -144
60 0
60 36
60 72
60 108
60 144
60 180
60 -36
60 -72
60 -108
60 -144
75 0
75 36
75 72
75 108
75 144
75 180
75 -36
75 -72
75 -108
75 -144
-15 0
-15 36
-15 72
-15 108
-15 144
-15 180
-15 -36
-15 -72
-15 -108
-15 -144
-30 0
-30 36
-30 72
-30 108
-30 144
-30 180
-30 -36
-30 -72
-30 -108
-30 -144
-45 0
-45 36
-45 72
-45 108
-45 144
-45 180
-45 -36
-45 -72
-45 -108
-45 -144
-60 0
-60 36
-60 72
-60 108
-60 144
-60 180
-60 -36
-60 -72
-60 -108
-60 -144
1000
12400
100
0 0
0 36
0 72
0 108
0 144
0 180
0 -36
0 -72
0 -108
0 -144
15 0
15 36
15 72
15 108
15 144
15 180
15 -36
15 -72
15 -108
15 -144
30 0
30 36
30 72
30 108
30 144
30 180
30 -36
30 -72
30 -108
30 -144
45 0
45 36
45 72
45 108
45 144
45 180
45 -36
45 -72
45 -108
45 -144
60 0
60 36
60 72
60 108
60 144
60 180
60 -36
60 -72
60 -108
60 -144
75 0
75 36
75 72
75 108
75 144
75 180
75 -36
75 -72
75 -108
75 -144
-15 0
-15 36
-15 72
-15 108
-15 144
-15 180
-15 -36
-15 -72
-15 -108
-15 -144
-30 0
-30 36
-30 72
-30 108
-30 144
-30 180
-30 -36
-30 -72
-30 -108
-30 -144
-45 0
-45 36
-45 72
-45 108
-45 144
-45 180
-45 -36
-45 -72
-45 -108
-45 -144
-60 0
-60 36
-60 72
-60 108
-60 144
-60 180
-60 -36
-60 -72
-60 -108
-60 -144
1000
1
100
0 0
0 36
0 72
0 108
0 144
0 180
0 -36
0 -72
0 -108
0 -144
15 0
15 36
15 72
15 108
15 144
15 180
15 -36
15 -72
15 -108
15 -144
30 0
30 36
30 72
30 108
30 144
30 180
30 -36
30 -72
30 -108
30 -144
45 0
45 36
45 72
45 108
45 144
45 180
45 -36
45 -72
45 -108
45 -144
60 0
60 36
60 72
60 108
60 144
60 180
60 -36
60 -72
60 -108
60 -144
75 0
75 36
75 72
75 108
75 144
75 180
75 -36
75 -72
75 -108
75 -144
-15 0
-15 36
-15 72
-15 108
-15 144
-15 180
-15 -36
-15 -72
-15 -108
-15 -144
-30 0
-30 36
-30 72
-30 108
-30 144
-30 180
-30 -36
-30 -72
-30 -108
-30 -144
-45 0
-45 36
-45 72
-45 108
-45 144
-45 180
-45 -36
-45 -72
-45 -108
-45 -144
-60 0
-60 36
-60 72
-60 108
-60 144
-60 180
-60 -36
-60 -72
-60 -108
-60 -144
500000
785300
2
-90 0
90 0
500000
785500
2
-90 0
90 0
500000
785300
2
0 0
0 180
500000
785500
2
0 0
0 180
500000
785300
2
0 0
0 -180
500000
785500
2
0 0
0 -180
500000
785300
4
0 0
88 0
88 -180
0 -180
500000
785500
4
0 0
88 0
88 -180
0 -180
200000
471200
5
0 0
88 0
88 -180
0 -180
-90 0
200000
471300
5
0 0
88 0
88 -180
0 -180
-90 0
200000
474700
6
0 0
88 0
88 -180
0 -180
-88 0
-88 -180
200000
474800
6
0 0
88 0
88 -180
0 -180
-88 0
-88 -180
200000
471200
5
0 0
88 0
88 -180
0 -180
-40 90
1000
12200
98
0 36
0 72
0 108
0 144
0 -36
0 -72
0 -108
0 -144
15 0
15 36
15 72
15 108
15 144
15 180
15 -36
15 -72
15 -108
15 -144
30 0
30 36
30 72
30 108
30 144
30 180
30 -36
30 -72
30 -108
30 -144
45 0
45 36
45 72
45 108
45 144
45 180
45 -36
45 -72
45 -108
45 -144
60 0
60 36
60 72
60 108
60 144
60 180
60 -36
60 -72
60 -108
60 -144
75 0
75 36
75 72
75 108
75 144
75 180
75 -36
75 -72
75 -108
75 -144
-15 0
-15 36
-15 72
-15 108
-15 144
-15 180
-15 -36
-15 -72
-15 -108
-15 -144
-30 0
-30 36
-30 72
-30 108
-30 144
-30 180
-30 -36
-30 -72
-30 -108
-30 -144
-45 0
-45 36
-45 72
-45 108
-45 144
-45 180
-45 -36
-45 -72
-45 -108
-45 -144
-60 0
-60 36
-60 72
-60 108
-60 144
-60 180
-60 -36
-60 -72
-60 -108
-60 -144
1000
12300
98
0 36
0 72
0 108
0 144
0 -36
0 -72
0 -108
0 -144
15 0
15 36
15 72
15 108
15 144
15 180
15 -36
15 -72
15 -108
15 -144
30 0
30 36
30 72
30 108
30 144
30 180
30 -36
30 -72
30 -108
30 -144
45 0
45 36
45 72
45 108
45 144
45 180
45 -36
45 -72
45 -108
45 -144
60 0
60 36
60 72
60 108
60 144
60 180
60 -36
60 -72
60 -108
60 -144
75 0
75 36
75 72
75 108
75 144
75 180
75 -36
75 -72
75 -108
75 -144
-15 0
-15 36
-15 72
-15 108
-15 144
-15 180
-15 -36
-15 -72
-15 -108
-15 -144
-30 0
-30 36
-30 72
-30 108
-30 144
-30 180
-30 -36
-30 -72
-30 -108
-30 -144
-45 0
-45 36
-45 72
-45 108
-45 144
-45 180
-45 -36
-45 -72
-45 -108
-45 -144
-60 0
-60 36
-60 72
-60 108
-60 144
-60 180
-60 -36
-60 -72
-60 -108
-60 -144
200000
471300
5
0 0
88 0
88 -180
0 -180
-40 90
]]></test_input>
<test_output><![CDATA[IS POSSIBLE
IS NOT POSSIBLE
IS NOT POSSIBLE
IS POSSIBLE
IS NOT POSSIBLE
IS NOT POSSIBLE
IS NOT POSSIBLE
IS POSSIBLE
IS NOT POSSIBLE
IS POSSIBLE
IS NOT POSSIBLE
IS POSSIBLE
IS NOT POSSIBLE
IS POSSIBLE
IS NOT POSSIBLE
IS POSSIBLE
IS NOT POSSIBLE
IS POSSIBLE
IS NOT POSSIBLE
IS NOT POSSIBLE
IS POSSIBLE
IS POSSIBLE
]]></test_output>
<hint><![CDATA[]]></hint>
<source><![CDATA[2008 ACM ICPC South Central USA Regional Programming Contest]]></source>
<solution language="C++"><![CDATA[#include <math.h>
#include <iostream>
#include <fstream>
#include <sstream>
#include <utility>
#include <vector>
#include <iomanip>
#include <queue>
#include <map>
#include <set>

using namespace std;

/*
 * DEBUG ONLY: If compiled -DDEBUG, each data set will print a C*C table
 * showing the distances in kilometers between every pair of cities in the data
 * set. It also prints the distances that were selected for the minimum
 * spanning tree along with the total minimum cost of the tree. Finally, it
 * also produces a series of files named "planetsN.dot" (one for each data set)
 * which are Graphviz representations of the minimum spanning tree that was
 * computed. These can be fed to the "neato" program to produce a visual graph
 * layout for verification purposes.
 */

/* SANITY CHECK: assertion macro for verifying input data and internal state */
#define ASSERT(e) { if(!(e)) { cerr << #e << endl; throw; } }

/*
 * DEBUG ONLY: The "neato" output file currently being written out
 */
#ifdef DEBUG
ofstream graphout;
#endif

/*
 * DEBUG ONLY: Data type for decimal numbers. This can be changed from double
 * precision to single precision float in order to evaluate the effect of
 * round off errors on the final answer.
 */
typedef double decimal_t;

/*
 * This data structure holds the distances (in km) between every pair of cities
 * in the data set. It maps a pair of city numbers to the scalar distance
 * between them. Even though distances are commutative (i.e. distnace (N. M) is
 * the same as (M, N)), this data structure holds the full C*C matrix simply
 * because it's easier to look up these values when running the minimum spanning
 * tree algorithm.
 */
typedef pair<int, int> edge_t;
typedef map<edge_t, decimal_t> distmap_t;

/*
 * Priority queue for selecting the next lowest cost edge in Prim's minimum
 * spanning tree algorithm. The priority queue is ordered in ascending order by
 * edge cost (i.e. distance) and each queue entry also contains the (from, to)
 * city numbers that define this edge. The TO city number is needed to find the
 * next set of outgoing edges from this city on the next iteration of Prim's
 * algorithm. The FROM city number is there purely for debug output purposes.
 */
typedef pair<decimal_t, edge_t> queuedata_t;
typedef priority_queue<queuedata_t, vector<queuedata_t>, greater<queuedata_t> >
    queue_t;

/* A (latitude, longitude) coordinate pair */
typedef pair<decimal_t, decimal_t> coord_t;

/* A 3D vector in rectangular coordinates */
typedef struct { decimal_t x, y, z; } rect_t;

/* Multiplying 3D vectors together computes dot product */
inline decimal_t operator*(rect_t const &a, rect_t const &b)
{
    return (a.x * b.x) + (a.y * b.y) + (a.z * b.z);
}

/*
 * The (latitude, longitude) coordinate pair can be treated as spherical
 * coordinates in 3D space, where latitude is theta (i.e. zenith) and longitude
 * is phi (i.e. azimuth). This allows us to convert the coordinates into a
 * rectangular form. For this conversion we assume a unit sphere (radius 1).
 *
 * Since the rectangular coordinates are only used for computing angles between
 * pairs of vectors, the sphere radius does not actually matter at this point.
 * In fact, using a unit sphere means that we don't have to find the magnitude
 * of each vector later on since all the vectors we return are of unit length.
 *
 * Finally, the angular measurements in the dataset are given as degrees while
 * the math.h trigonometric functions expect radians so we have to do the
 * conversion before calling sin() and cos().
 */
rect_t torect(coord_t coord)
{
    /* Convert angle measurements from degrees to radians */
    coord.first = coord.first * 2 * M_PI / 360;
    coord.second = coord.second * 2 * M_PI / 360;
   
    /* Convert spherical coordinates to rectangular */
    rect_t rect;   
    rect.x = cos(coord.first) * sin(coord.second);
    rect.y = cos(coord.first) * cos(coord.second);
    rect.z = sin(coord.first);
    
    return rect;
}

/*
 * Given two points on the surface of the sphere (specified a two 3D vectors)
 * and given the diameter of the planet, compute the distance between the two
 * points along the surface of the sphere.
 *
 * The two vectors define a plane that passes through the origin of the sphere,
 * and the intersection of this plane with the surface of the sphere forms
 * a great circle (i.e. a circle that passes through the sphere's origin).
 * The shortest distance between the two points will be an arc along the
 * perimiter of this great circle.
 *
 * The dot product formula states: x * y = cos(A) |x| |y|
 * In other words, the dot product of two vectors equals the product of the
 * magnitudes multiplied by the cosine of the angle between the two vectors.
 * By re-arranging the formula we can calculate the angle A with acos().
 * Also since we know that torect() only returns unit length vectors, we can
 * simplify the magnitude multiplication out of the dot product equation.
 *
 * Once we know angle A, we can calculate the arc length by first computing
 * the perimeter of the great circle and then multiplying it by the fraction
 * A/2pi. Also note that the longest distance you can possibly have is half
 * the perimeter (i.e. opposite ends of the sphere like the North and South
 * poles).
 */
decimal_t distance(rect_t const &a, rect_t const &b, decimal_t diameter)
{
    decimal_t perimeter = M_PI * diameter;
    decimal_t fraction = acos(a * b) / (2 * M_PI);
    return fraction * perimeter;
}

/*
 * Add "city" to the "visited" set and add to the priority "queue" any edges
 * from "city" to all other unvisitied cities.
 */
void prim_visit(int city, int city_num, distmap_t distmap, set<int> &visited,
    queue_t &queue)
{
    visited.insert(city);

    for(int i = 0; i < city_num; i++) {
        if(visited.find(i) == visited.end()) {
            edge_t edge(city, i);
            queue.push(queuedata_t(distmap[edge], edge));
        }
    }
}

/*
 * Use Prim's algorithm to compute a minimum spanning tree that connects all of
 * the cities together. We start with a complete graph that connects every
 * pair of cities together. We then arbitrarily pick city number 0 as the
 * starting point of the algorithm.
 *
 * DEBUG ONLY: Print out the edge costs of the select minimum spanning tree
 * to stderr, and write out the complete minimum spanning tree in Graphviz
 * format to "planetsX.neato" files.
 */
decimal_t prim(distmap_t &distmap, vector<coord_t> city)
{
    decimal_t total = 0; /* Accumulated total length of visited edges */    
    set<int> visited;    /* Track which cities have been visited already */
    queue_t queue;       /* Priority queue to select next minimum cost edge */
    
#ifdef DEBUG
    cerr << "MSP: ";
    graphout << "graph G {" << endl;
#endif

    /* Arbitrarily begin with the 0th city. */
    prim_visit(0, city.size(), distmap, visited, queue);
    
    /* Keep running until all cities are visited */
    while(visited.size() != city.size()) {
        queuedata_t data;
        
        /* Get minimum cost edge to an unvisited city from any visited one */
        do { 
            /* SANITY CHECK: If unvisited cities remain then so must an edge */
            ASSERT(queue.size());
            
            data = queue.top();
            queue.pop();
            
        /* Skip over edges pointing TO already visited cities */
        } while(visited.find(data.second.second) != visited.end());

#ifdef DEBUG        
        coord_t from = city[data.second.first];
        coord_t to = city[data.second.second];
        
        graphout << "    \"" << from.first << "  " << from.second << "\"";
        graphout << " -- ";
        graphout << "\"" << to.first << "  " << to.second << "\"";
        graphout << " [label = " << distmap[data.second] << "]" << endl;

        cerr << data.first << " ";
#endif

        /* Accumulate edge cost and add the next set of edges to queue */
        total += data.first;
        prim_visit(data.second.second, city.size(), distmap, visited, queue);
    }

#ifdef DEBUG
    graphout << "}" << endl;
#endif
    
    return total;
}

/* Main body of program */
void process(void)
{
    int data_num, data_idx;

    /* Read how many data sets to process */
    cin >> data_num;
    
    /* Process each data set separately */
    for(data_idx = 0; data_idx < data_num; data_idx++) {
        decimal_t diameter, length;
        vector<coord_t> city;
        distmap_t distmap;
        int city_num;
        
        /* Read in diameter, length, and city count */
        cin >> diameter >> length >> city_num;
        ASSERT(1 <= diameter && diameter <= 1000000);
        ASSERT(1 <= length && length <= 1000000);
        ASSERT(1 <= city_num && city_num <= 100);
        
        /* Read in the list of city coordinates */
        for(int i = 0; i < city_num; i++) {
            decimal_t latitude, longitude;

            cin >> latitude >> longitude;
            ASSERT(-90 <= latitude && latitude <= 90);
            ASSERT(-180 <= longitude && longitude <= 180);
            
            city.push_back(coord_t(latitude, longitude));
        }
        
        /*
         * Precompute the C*C matrix of distances (in km) between all cities
         * and store the results in the "distance map" for later use by the
         * minimum spanning tree algorithm.
         *
         * DEBUG ONLY: Print a C*C table showing the computed distances to
         * verify that the calculations are correct and to evaluate the effect
         * due to round off errors with floats vs doubles.         
         */
        for(int i = 0; i < city_num; i++) {
            for(int j = 0; j < city_num; j++) {
                decimal_t dist = distance(torect(city[i]), torect(city[j]),
                    diameter);
#ifdef DEBUG
                cerr << setw(4) << dist << " ";
#endif
                distmap[edge_t(i, j)] = dist;
            }
#ifdef DEBUG
            cerr << endl;
#endif            
        }

#ifdef DEBUG
        /* DEBUG ONLY: Open "neato" graph file for output */
        ostringstream filename;
        filename << "planets" << data_idx + 1 << ".neato";
        graphout.open(filename.str().c_str(), ios::trunc);
#endif        
        /* Compute the minimum cost spanning tree */
        decimal_t mincost = prim(distmap, city);
        
        /* Print the answer for the dataset */        
#ifdef DEBUG
        cerr << "= " << mincost << endl;
        cerr << (mincost <= length ? "IS POSSIBLE" : "IS NOT POSSIBLE") << endl;
        graphout.close();
#endif
        cout << (mincost <= length ? "IS POSSIBLE" : "IS NOT POSSIBLE") << endl;
    }
}

/* Run program and print out any exceptions that occur */
int main(void)
{
    /* Throw exceptions on EOF or failed data extraction in >> operator */
    cin.exceptions(ios::eofbit | ios::failbit);

#ifdef DEBUG
    /* DEBUG ONLY: Setup floating point format for debug output on stderr */
    cerr.precision(0);
    cerr.setf(ios::fixed);
    cerr.fill('0');
#endif
    
    /* Run main body of code */
    try {
        process();
    }
    
    /* Catch unexpected EOF or bad input data */
    catch(ios::failure const &e) {
        cerr << "Unexpected EOF or data type mismatch on input" << endl;
    }

    return 0;
}

]]></solution>
<![CDATA[]]>
</item>
<item>
<title><![CDATA[Patterns and Pictures]]></title>
<time_limit><![CDATA[1]]></time_limit>
<memory_limit><![CDATA[128]]></memory_limit>

<description><![CDATA[<p>Fabrics often have repeating patterns on them, such as a tessellation of carrots and bats.</p>
<p>A given image, such as a carrot in the above example, takes up a certain number of square inches on the fabric.  In addition, a piece of fabric with more than one image will have those images in some sort of simple integral ratio, such as 3 carrots for every 2 bats.  One instance of images in the given ratio is considered a <i>full set</i>.</p>
<p>Fabrics are sold by the square yard (and, for those of you who have forgotten, there are 36 inches to the yard).  Given a collection of images, their sizes, and the ratios in which they occur, what is the maximum number of full sets that could possibly appear on one, two, and three square yards of patterned fabric?</p>
<p>(Note that this maximum implies totally arbitrary shapes and placements for the images, which may be different for the three lengths of fabric; the particulars of the layout are irrelevant for the purposes of the problem.)</p>]]></description>
<input><![CDATA[<p>Input to this problem will begin with a line containing a single integer <i>N</i> (1 &le; <i>N</i> &le; 100) indicating the number of data sets. Each data set consists of the following components:</p>
<ul>
    <li>A line containing a single integer <i>I</i> (1 &le; <i>I </i>&le; 10) indicating the number of images in a particular pattern;</li>
    <li>A series of <i>I</i> lines, each with two integers <i>S</i>, <i>R</i> (1 &le; <i>S </i>&le; 1000; 1 &le; <i>R</i> &le; 100) separated by spaces representing the images.  <i>S</i> is the number of square inches that the image occupies; <i>R</i> is the count of the images contained in a full set.</li>
</ul>
<br />]]></input> 
<output><![CDATA[<p>For each data set, print &quot;<tt><i>A</i> <i>B</i> <i>C</i></tt>&quot;, where <i>A</i> is the maximum number of full sets that could possibly appear on one square yard of fabric, <i>B</i> is the maximum number of full sets that could possibly appear on two square yards of fabric, and <i>C</i> is the maximum number of full sets that could possibly appear on three square yards of fabric.</p>]]></output>
<sample_input><![CDATA[1
2
15 3
17 2
]]></sample_input>
<sample_output><![CDATA[16 32 49
]]></sample_output>
<test_input><![CDATA[15
2
15 3
17 2
10
1 100
2 100
3 100
4 100
5 100
6 100
7 100
8 100
9 100
10 100
1
999 1
1
649 1
1
648 2
1
649 2
1
1000 100
1
1000 1
1
972 1
1
973 1
1
1 1
1
1 2
10
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
10
1000 100
1000 100
1000 100
1000 100
1000 100
1000 100
1000 100
1000 100
1000 100
1000 100
2
15 6
16 4
]]></test_input>
<test_output><![CDATA[16 32 49
0 0 0
1 2 3
1 3 5
1 2 3
0 1 2
0 0 0
1 2 3
1 2 4
1 2 3
1296 2592 3888
648 1296 1944
129 259 388
0 0 0
8 16 25
]]></test_output>
<hint><![CDATA[]]></hint>
<source><![CDATA[2008 ACM ICPC South Central USA Regional Programming Contest]]></source>
<solution language="C++"><![CDATA[#include <iostream>

using namespace std;

/* SANITY CHECK: assertion macro for verifying input data and internal state */
#define ASSERT(e) { if(!(e)) { cerr << #e << endl; throw; } }

/* Main body of program */
void process(void)
{
    int data_num, data_idx;

    /* Read how many data sets to process */
    cin >> data_num;
    
    /* Process each data set separately */
    for(data_idx = 0; data_idx < data_num; data_idx++) {
        int image_idx, image_num;
        int total = 0;

        cin >> image_num;
        ASSERT(1 <= image_num && image_num <= 10);
        
        /* Compute size (in sq.in) of a complete pattern */
        for(image_idx = 0; image_idx < image_num; image_idx++) {
            int sqin, ratio;
            
            cin >> sqin >> ratio;
            ASSERT(1 <= sqin && sqin <= 1000);
            ASSERT(1 <= ratio && ratio <= 100);
            
            total += sqin * ratio;
        }
        
        /*
         * There are 36*36=1296 inches in one square yard. Print out how many
         * complete image patterns will fit within 1, 2, and 3 square yards.
         */
        cout << 1296 / total << " ";
        cout << 1296 * 2 / total << " ";
        cout << 1296 * 3 / total << endl;
    }
}

/* Run program and print out any exceptions that occur */
int main(void)
{
    /* Throw exceptions on failed data extraction in >> operator */
    cin.exceptions(ios::failbit);
    
    /* Run main body of code */
    try {
        process();
    }
    
    /* Catch unexpected EOF or bad input data */
    catch(ios::failure const &e) {
        cerr << "Unexpected EOF or data type mismatch on input" << endl;
    }

    return 0;
}

]]></solution>
<![CDATA[]]>
</item>
<item>
<title><![CDATA[No Wormholes Were Harmed...]]></title>
<time_limit><![CDATA[40]]></time_limit>
<memory_limit><![CDATA[128]]></memory_limit>

<description><![CDATA[<p>As director of the Causality Infraction Agency, your primary objective is track down and arrest unscrupulous individuals attempting to alter the course of history.</p>
<p>Although your mission briefings include the exact year that a time agent must travel to, the physics of time travel don't make it quite so simple. Time travel can only be done by moving through wormholes that connect two specific instances of time together. As a result, an agent must travel through several wormholes in sequence to reach his or her destination time. In addition, an agent may have to spend some time living in the past or future while waiting for the next wormhole to appear. Traveling through a wormhole also isn't as simple as it might seem: moving forward in time through a wormhole will instanteously age the user by a certain number of years and moving backwards through one will instanteously make the traveller slightly younger.</p>
<p>Because the agency pays its agents based on how many years they've aged since joining the service, you are required to minimize the &quot;aging process&quot; as much as possible for every agent. Your goal therefore is to write a program that finds the optimal itinerary of wormhole jumps for each agent's mission and then reports the total number of years each agent will age after completing their assignment.</p>
<p>For agency accounting purposes, the formulas for computing total years aged on a mission are as follows:</p>
<p></p>
<ul class="example">
    <li>When starting from some year of <i>origin</i> and simply waiting until some <i>destination</i> year, the age a body accumulates in years equals:
    <p align="center"><i>destination</i> - <i>origin</i></p>
    <p>In other words, if you were currently in the year 1785 and had to wait until the year 1793, then you will have aged 8 years.</p>
    </li>
    <li>When traveling forward in time through a wormhole that connects one year of <i>departure</i> with a later year of <i>arrival</i>, then the number of years a body ages is equal to:
    <p align="center">floor((<i>arrival</i> - <i>departure</i>) / 2)</p>
    <p>Put in another way, you will age half the number of years (rounded down) you normally would have had you instead waited for the equivalent number of years to pass by. Note that when traveling over a small enough time difference, the years aged may be rounded down to zero for accounting purposes.</p>
    </li>
    <li>When traveling backward in time through a wormhole that connects one year of <i>departure</i> with an earlier year of <i>arrival</i>, then the number of years a body &quot;gains back&quot; by becoming younger is equal to:
    <p align="center">floor((<i>departure</i> - <i>arrival</i>) / 4)</p>
    In other words, you gain back a quarter of the difference between the two years (rounded down). Note that when traveling over a small enough time difference, the years &quot;gained back&quot; may be rounded down to zero for accounting purposes.</li>
    <li>A wormhole that starts and ends at the same year is possible, but causes no     aging or time travel, and as such serves little purpose other than to     confound the scientists.</li>
</ul>
<p>Each dataset to this problem will contain a starting year from which all agents begin their travels and a list of mission assignments, one for each agent. Every mission assignment includes a final destination year that the agent must travel to. The mission can only be completed if the agent is able to make a round trip by traveling from the starting year to the mission's destination year and then traveling back to the initial starting year again. If such a round trip cannot be completed, then that particular mission is invalid. For the purposes of this problem, you also do not have to consider the maximum lifespan of any given agent. A mission is considered valid as long as a round trip is possible regardless of how high the count of years aged will be.</p>]]></description>
<input><![CDATA[<p>Input to this problem will begin with a line containing a single integer <i>N</i> (1 &le; <i>N</i> &le; 100) indicating the number of data sets. Each data set consists of the following components:</p>
<ul>
    <li>A line containing a single integer <i>W</i> (1 &le; <i>W</i> &le; 100) specifying the number of wormholes present for this dataset.</li>
    <li>A series of <i>W</i> lines of the form &quot;<i>D</i> <i>A</i>&quot; (1 &le; <i>D</i>, <i>A</i> &le; 9999), each of which describes a single wormhole. The numbers <i>D</i> and <i>A</i> respectively specify the <i>departure</i> and <i>arrival</i> years of the wormhole's two endpoints in time. A wormhole is unidirectional allowing travel only from its departure year to its arrival year, but not vice-versa.</li>
    <li>A line containing a single integer <i>S</i> (1 &le; <i>S</i> &le; 9999) which is the starting year for all agents.</li>
    <li>A line containing a single integer <i>M</i> (1 &le; <i>M</i> &le; 100) indicating the number of missions to be analyzed.</li>
    <li>A series of <i>M</i> lines, each containing a single integer <i>F</i> (1 &le; <i>F</i> &le; 9999) which specifies the final destination year for each of the <i>M</i> missions.</li>
</ul>
<br />]]></input> 
<output><![CDATA[<p>For each data set in the input, output the heading &quot;<tt>DATA SET #<i>k</i></tt>&quot; where <i>k</i> is 1 for the first data set, 2 for the second, and so on. Then print <i>M</i> lines showing the results of each of the <i>M</i> missions from the input and in the same relative order as the input. Each of the <i>M</i> lines should contain either a single integer indicating the number of years aged by that respective agent or the words &quot;<tt>IMPOSSIBLE</tt>&quot; if that particular mission cannot be completed (either because the destination is unreachable or a return trip is not possible).</p>]]></output>
<sample_input><![CDATA[1
2
2011 1956
1975 2005
2008
3
1969
2012
1982
]]></sample_input>
<sample_output><![CDATA[DATA SET #1
27
IMPOSSIBLE
42
]]></sample_output>
<test_input><![CDATA[9
2
2011 1956
1975 2005
2008
3
1969
2012
1982
1
1999 1999
1998
3
1997
1998
1999
1
1999 1999
2000
3
1999
2000
2001
4
10 32
32 8
24 20
32 24
8
1
20
10
5000 5001
5001 5002
5002 5003
5003 5004
5004 5005
5005 5004
5004 5003
5003 5002
5002 5001
5001 5000
5002
6
5000
5001
5002
5003
5004
5005
25
1000 1000
1000 1010
1000 1020
1000 1030
1000 1040
1010 1000
1010 1010
1010 1020
1010 1030
1010 1040
1020 1000
1020 1010
1020 1020
1020 1030
1020 1040
1030 1000
1030 1010
1030 1020
1030 1030
1030 1040
1040 1000
1040 1010
1040 1020
1040 1030
1040 1040
1000
5
1000
1010
1020
1030
1040
100
2000 1999
1999 1998
1998 1997
1997 1996
1996 1995
1995 1994
1994 1993
1993 1992
1992 1991
1991 1990
1990 1989
1989 1988
1988 1987
1987 1986
1986 1985
1985 1984
1984 1983
1983 1982
1982 1981
1981 1980
1980 1979
1979 1978
1978 1977
1977 1976
1976 1975
1975 1974
1974 1973
1973 1972
1972 1971
1971 1970
1970 1969
1969 1968
1968 1967
1967 1966
1966 1965
1965 1964
1964 1963
1963 1962
1962 1961
1961 1960
1960 1959
1959 1958
1958 1957
1957 1956
1956 1955
1955 1954
1954 1953
1953 1952
1952 1951
1951 1950
1950 1949
1949 1948
1948 1947
1947 1946
1946 1945
1945 1944
1944 1943
1943 1942
1942 1941
1941 1940
1940 1939
1939 1938
1938 1937
1937 1936
1936 1935
1935 1934
1934 1933
1933 1932
1932 1931
1931 1930
1930 1929
1929 1928
1928 1927
1927 1926
1926 1925
1925 1924
1924 1923
1923 1922
1922 1921
1921 1920
1920 1919
1919 1918
1918 1917
1917 1916
1916 1915
1915 1914
1914 1913
1913 1912
1912 1911
1911 1910
1910 1909
1909 1908
1908 1907
1907 1906
1906 1905
1905 1904
1904 1903
1903 1902
1902 1901
1901 1900
1950
100
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
100
2100 2097
2098 2095
2096 2093
2094 2091
2092 2089
2090 2087
2088 2085
2086 2083
2084 2081
2082 2079
2080 2077
2078 2075
2076 2073
2074 2071
2072 2069
2070 2067
2068 2065
2066 2063
2064 2061
2062 2059
2060 2057
2058 2055
2056 2053
2054 2051
2052 2049
2050 2047
2048 2045
2046 2043
2044 2041
2042 2039
2040 2037
2038 2035
2036 2033
2034 2031
2032 2029
2030 2027
2028 2025
2026 2023
2024 2021
2022 2019
2020 2017
2018 2015
2016 2013
2014 2011
2012 2009
2010 2007
2008 2005
2006 2003
2004 2001
2002 1999
2000 1997
1998 1995
1996 1993
1994 1991
1992 1989
1990 1987
1988 1985
1986 1983
1984 1981
1982 1979
1980 1977
1978 1975
1976 1973
1974 1971
1972 1969
1970 1967
1968 1965
1966 1963
1964 1961
1962 1959
1960 1957
1958 1955
1956 1953
1954 1951
1952 1949
1950 1947
1948 1945
1946 1943
1944 1941
1942 1939
1940 1937
1938 1935
1936 1933
1934 1931
1932 1929
1930 1927
1928 1925
1926 1923
1924 1921
1922 1919
1920 1917
1918 1915
1916 1913
1914 1911
1912 1909
1910 1907
1908 1905
1906 1903
1904 1901
1902 1899
2000
100
1901
1903
1905
1907
1909
1911
1913
1915
1917
1919
1921
1923
1925
1927
1929
1931
1933
1935
1937
1939
1941
1943
1945
1947
1949
1951
1953
1955
1957
1959
1961
1963
1965
1967
1969
1971
1973
1975
1977
1979
1981
1983
1985
1987
1989
1991
1993
1995
1997
1999
2001
2003
2005
2007
2009
2011
2013
2015
2017
2019
2021
2023
2025
2027
2029
2031
2033
2035
2037
2039
2041
2043
2045
2047
2049
2051
2053
2055
2057
2059
2061
2063
2065
2067
2069
2071
2073
2075
2077
2079
2081
2083
2085
2087
2089
2091
2093
2095
2097
2099
1
9999 1
2
100
7
14
21
28
35
42
49
56
63
70
77
84
91
98
105
112
119
126
133
140
147
154
161
168
175
182
189
196
203
210
217
224
231
238
245
252
259
266
273
280
287
294
301
308
315
322
329
336
343
350
357
364
371
378
385
392
399
406
413
420
427
434
441
448
455
462
469
476
483
490
497
504
511
518
525
532
539
546
553
560
567
574
581
588
595
602
609
616
623
630
637
644
651
658
665
672
679
686
693
700
]]></test_input>
<test_output><![CDATA[DATA SET #1
27
IMPOSSIBLE
42
DATA SET #2
IMPOSSIBLE
0
IMPOSSIBLE
DATA SET #3
IMPOSSIBLE
0
IMPOSSIBLE
DATA SET #4
16
DATA SET #5
0
0
0
0
0
0
DATA SET #6
0
3
5
8
10
DATA SET #7
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
DATA SET #8
147
144
141
138
135
132
129
126
123
120
117
114
111
108
105
102
99
96
93
90
87
84
81
78
75
72
69
66
63
60
57
54
51
48
45
42
39
36
33
30
27
24
21
18
15
12
9
6
3
3
3
6
9
12
15
18
21
24
27
30
33
36
39
42
45
48
51
54
57
60
63
66
69
72
75
78
81
84
87
90
93
96
99
102
105
108
111
114
117
120
123
126
129
132
135
138
141
144
147
150
DATA SET #9
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
7499
]]></test_output>
<hint><![CDATA[]]></hint>
<source><![CDATA[2008 ACM ICPC South Central USA Regional Programming Contest]]></source>
<solution language="C++"><![CDATA[#include <iostream>
#include <fstream>
#include <sstream>
#include <utility>
#include <vector>
#include <limits>
#include <map>
#include <set>

using namespace std;

/* SANITY CHECK: assertion macro for verifying input data and internal state */
#define ASSERT(e) { if(!(e)) { cerr << #e << endl; throw; } }

/* Maximum edge cost; used to indicate that a node is unreachable */
#define MAXCOST (numeric_limits<int>::max())

/*
 * This adjacency list data structure holds the list of all edges in the data
 * set (and associated "aging" costs; years "gained back" are negative cost
 * edges). It maps a (departure, arrival) pair to the years aged by traveling
 * through the wormhole. It also contains "implicit" edges that represent
 * having to wait for some number of years while a new wormhole arrives.
 * 
 */
typedef pair<int, int> edge_t;
typedef map<edge_t, int> costmap_t;

/*
 * Use the Bellman-Ford algorithm to find the shortest path from start year
 * to end year and return the total cost along that path. Becuase the graph
 * contains negative cost edges, the less efficient Bellman-Ford algorithm
 * must be used instead of Dijkstra's algorithm because Dijkstra's optimizes
 * too early and could produce incorrect results. We also don't need an
 * explicit check for negative cost cycles because the problem statement
 * simply won't allow them.
 */
int findpath(costmap_t &costmap, set<int> &years, int start, int end)
{
    map<int, int> dist;
    map<int, int> pred;

    /* Initialize "shortest path distance" map to default "unreachable" cost */
    for(set<int>::iterator i = years.begin(); i != years.end(); ++i) {
        dist[*i] = MAXCOST;
    }
    
    /* The node we start from is 0 years away by definition */
    dist[start] = 0;
    
    /*
     * Run the main body of the Bellman-Ford algorithm. Note that we could 
     * break out of the loop as soon as a complete iteration makes no
     * more changes to the "dist" map. However, looping the full amount
     * helps establish the maximum running time for the algorithm.
     */
    for(int i = 0; i < years.size() - 1; i++) {        
        for(costmap_t::iterator j = costmap.begin(); j != costmap.end(); ++j) {
            if(dist[j->first.first] != MAXCOST) {
                int cost = dist[j->first.first] + j->second;
                
                if(cost < dist[j->first.second]) {
                    dist[j->first.second] = cost;
                    pred[j->first.second] = j->first.first;
                }
            }
        }
    }

    /*
     * DEBUG ONLY: Show the shortest path by highlighting the nodes on the
     * path in the Graphiviz output file.
     */
#ifdef DEBUG
    if(dist[end] != MAXCOST) {
        int i, j;
        cerr << end;

        for(i = end; pred.find(i) != pred.end(); i = j) {
            j = pred[i];
            cerr << " <<" << costmap[edge_t(j, i)] << "<< ";
            cerr << j;
        }
        cerr << " = " << dist[end] << endl;
    }
#endif
    
    return dist[end];
}

/* Main body of program */
void process(void)
{
    int data_num, data_idx;

    /* Read how many data sets to process */
    cin >> data_num;
    
    /* Process each data set separately */
    for(data_idx = 0; data_idx < data_num; data_idx++) {
        set<int> years;     /* Any year seen in input; all nodes in graph */
        vector<int> agents; /* List of destinations for each agent */
        costmap_t costs;    /* Adjecency list of wormholes & implicit waits */
        int start;          /* Starting year for all agents */

#ifdef DEBUG
        /* DEBUG ONLY: Write a graph representation to "dot" file */
        ostringstream filename;        
        filename << "time-travel" << data_idx + 1 << ".dot";
        
        ofstream graph(filename.str().c_str(), ios::trunc);
        graph << "digraph G {" << endl;
#endif

        /* Read in total number of wormholes W */
        int hole_num, hole_idx;
        cin >> hole_num;
        ASSERT(1 <= hole_num && hole_num <= 100);

        /* Read in the list of wormholes for this data set */
        for(hole_idx = 0; hole_idx < hole_num; hole_idx++) {
            int depart, arrive, cost;
            cin >> depart >> arrive;
            ASSERT(1 <= depart && depart <= 9999);
            ASSERT(1 <= arrive && arrive <= 9999);
            
            /* Add to set of all nodes in graph; usef for implicit edges */
            years.insert(depart);
            years.insert(arrive);
            
            /* Compute wormhole traveling costs (negative for backwards) */
            if(depart <= arrive) {
                cost = (arrive - depart) / 2;
            } else {
                cost = (arrive - depart) / 4;
            }
            
            /* Record the cost in the adjacency list */
            costs[edge_t(depart, arrive)] = cost;
#ifdef DEBUG
            graph << "    " << depart << " -> " << arrive <<
                " [label=" << cost << "]" << endl;
#endif                       
        }
        
        /* Read in the starting year */
        cin >> start;
        ASSERT(1 <= start && start <= 9999);
        years.insert(start);
        
#ifdef DEBUG
        graph << "    " << start << " [label=\"" << start << "\\n(S)\"]" << endl;
#endif        
        
        /* Read in total number of missions/agents M */
        int agent_num, agent_idx;
        cin >> agent_num;
        ASSERT(1 <= agent_num && agent_num <= 100);
                
        /* Read in the list of final destinations for each agent */
        for(agent_idx = 0; agent_idx < agent_num; agent_idx++) {
            int dest;
            cin >> dest;
            ASSERT(1 <= dest && dest <= 9999);
#ifdef DEBUG
            graph << "    " << dest << " [label=\"" << dest <<
                "\\n(" << agent_idx + 1 << ")\"]" << endl;
#endif                    
            years.insert(dest);
            agents.push_back(dest);
        }
        
        /*
         * For every pair of years (X, Y) in the input such that X < Y, compute
         * an "implicit" edge that represents having to wait from year X to
         * year Y if there was no explicit wormhole edge (X, Y) in data set.
         * Note that STL sets are already in ascending order therefore an
         * explicit sort() is not required.
         */
        set<int>::iterator i, j;
        for(i = j = years.begin(), ++j; j != years.end(); ++i, ++j) {
            edge_t edge(*i, *j);

            if(costs.find(edge) == costs.end()) {
                costs[edge] = *j - *i;
#ifdef DEBUG
                graph << "    " << *i << " -> " << *j <<
                    " [label=" << *j - *i << ", style=dashed]" << endl;
#endif
            }
        }  

        /* Print the data set label */
        cout << "DATA SET #" << data_idx + 1 << endl;
#ifdef DEBUG
        cerr << "DATA SET #" << data_idx + 1 << endl;
#endif

        /*
         * Now for each mission, compute the cost of traveling from the
         * start to destination year and back. If that cost is less than
         * MAXCOST then the mission is possible.
         */
        for(agent_idx = 0; agent_idx < agent_num; agent_idx++) {
            int end = agents[agent_idx];        
            
            int travelcost = findpath(costs, years, start, end);
            int returncost = findpath(costs, years, end, start);            
            int totalcost;

            if(travelcost == MAXCOST || returncost == MAXCOST) {
                cout << "IMPOSSIBLE" << endl;
#ifdef DEBUG
                cerr << "IMPOSSIBLE" << endl;
#endif
            } else {
                cout << travelcost + returncost << endl;
#ifdef DEBUG
                cerr << travelcost + returncost << endl;
#endif
            }

#ifdef DEBUG
        graph << "}" << endl;
        graph.close();
#endif
        }
    }
}

/* Run program and print out any exceptions that occur */
int main(void)
{
    /* Throw exceptions on EOF or failed data extraction in >> operator */
    cin.exceptions(ios::eofbit | ios::failbit);

    /* Run main body of code */
    try {
        process();
    }
    
    /* Catch unexpected EOF or bad input data */
    catch(ios::failure const &e) {
        cerr << "Unexpected EOF or data type mismatch on input" << endl;
    }

    return 0;
}

]]></solution>
<![CDATA[]]>
</item>
<item>
<title><![CDATA[Tribute (Editor)]]></title>
<time_limit><![CDATA[1]]></time_limit>
<memory_limit><![CDATA[128]]></memory_limit>

<description><![CDATA[<p>This problem is not about the greatest editor in the world; it is just a tribute.</p>
<p>The <i>Tenacious eDitor</i> is an attempt to clone to power of a certain modal editor.  However, it is notoriously bug-ridden.  You've been asked to replace Kyle (who quit the devteam) and help with fixing some of the bugs.</p>
<p>The main problem with the current release of <tt>td</tt>, as it is commonly referred to, is that it cannot differentiate between text on a line and commands.  Whenever a user wants to type an <tt>x</tt>, the editor interprets it as a command to delete the last character.  This is problematic.  Thankfully, commands are case-sensitive, and each letter is at most a single command (sometimes uppercase, sometimes lowercase), so one can manage to write any given line of text as long as it's allowed to look like something written by a fourteen-year-old hacker wannabe.</p>
<p>Editing occurs in an <i>edit buffer</i>, which starts out empty. The cursor in <tt>td</tt> rests in <i>gaps</i>, locations surrounding each printed character.  When a non-command character is entered, the character is inserted to the right of the cursor's current location and the cursor moves to the gap to the right of the new character.  (This is the standard behavior of most editors.)  A line with no characters has a single gap. A line with a single printable character has two (one before and one after), a line with two printable characters has three, and so on.</p>
<p>The currently-implemented commands are:
<table border="1" align="center">
    <tbody>
        <tr>
            <td>Command keys</td>
            <td>Result</td>
            <td>Cursor location after operation</td>
        </tr>
        <tr>
            <td><tt>x</tt></td>
            <td>Delete the character immediately to the left of the cursor</td>
            <td>One gap to the left</td>
        </tr>
        <tr>
            <td><tt>K</tt></td>
            <td>Delete all non-spaces to the left of the cursor, stopping at the           first space encountered or the beginning of the line; if the           previous character is a space, delete nothing</td>
            <td>The gap to the right of the &quot;stop&quot; character</td>
        </tr>
        <tr>
            <td><tt>c</tt></td>
            <td>Duplicate the character to the left of the cursor, inserting it to           the right of the cursor</td>
            <td>The gap to the right of the duplicate character (one right)</td>
        </tr>
        <tr>
            <td><tt>D</tt></td>
            <td>Duplicate all non-spaces to the left of the cursor, stopping at the           first space encountered or the beginning of the line and inserting           them to the right of the cursor; if the previous character is a           space, duplicate nothing</td>
            <td>The gap to the right of the rightmost duplicate character</td>
        </tr>
        <tr>
            <td><tt>R</tt></td>
            <td>Reverse all non-spaces to the left of the cursor, stopping at the           first space encountered or the beginning of the line; if the           previous character is a space, reverse nothing</td>
            <td>No change</td>
        </tr>
        <tr>
            <td><tt>p</tt></td>
            <td>Delete all characters to the left of the cursor</td>
            <td>Leftmost gap</td>
        </tr>
        <tr>
            <td><tt>W</tt></td>
            <td>Delete all characters to the right of the cursor</td>
            <td>No change</td>
        </tr>
        <tr>
            <td><tt>h</tt></td>
            <td>Move the cursor one gap to the left</td>
            <td>One gap to the left</td>
        </tr>
        <tr>
            <td><tt>L</tt></td>
            <td>Move the cursor one gap to the right</td>
            <td>One gap to the right</td>
        </tr>
        <tr>
            <td><tt>f</tt></td>
            <td>Move the cursor to the first gap on the line</td>
            <td>Leftmost gap</td>
        </tr>
        <tr>
            <td><tt>G</tt></td>
            <td>Move the cursor to the last gap on the line</td>
            <td>Rightmost gap</td>
        </tr>
        <tr>
            <td><i>any non-command character</i></td>
            <td>Insert the character into the edit buffer to the right of the cursor</td>
            <td>One gap to the right</td>
        </tr>
    </tbody>
</table>
For the purposes of this problem, the only characters are uppercase and lowercase characters, digits, and spaces.</p>
<p>When a character is added internally to a line of text, all subsequent characters shift to the right (as in &quot;insert mode&quot;); when characters are deleted from anywhere other than the end of a line, all subsequent characters shift to the left.</p>
<p>Any commands which cannot properly do anything (attempting to move past the first or last gap, deleting characters when none exist, and so on) do nothing.  They do <b>not</b> show up as printed characters.</p>
<p>Each line represents a different session of <tt>td</tt>; at the beginning of a new session, the edit buffer is empty.</p>
<p>Given a series of keystrokes by a user, can you determine what text actually results if it were entered in the current version of <tt>td</tt>?</p>]]></description>
<input><![CDATA[<p>Input to this problem will begin with a line containing a single integer <i>N</i> (1 &le; <i>N</i> &le; 100) indicating the number of data sets.  Each data set consists of a single line of characters, as defined above, with no leading or trailing whitespace.  There are no less than 1 and no more than 100 characters per line.  They represent the series of keystrokes entered by a user for a particular session of <tt>td</tt>. </p>]]></input> 
<output><![CDATA[<p>For each data set, print the final state of the edit buffer from the sequence of characters  entered, with a carat (<tt>^</tt>) at the location of the cursor.</p>]]></output>
<sample_input><![CDATA[2
Deletex bigdeleteKduPc bigduPD esreverR midinhhdleGxx midelletehhhxGfmoo
THis ratHer obnoXious line oF CHaraCters surPrisingly triggers no Commands
]]></sample_input>
<sample_output><![CDATA[moo^elet duPP bigduPbigduP reverse middle midelete
THis ratHer obnoXious line oF CHaraCters surPrisingly triggers no Commands^
]]></sample_output>
<test_input><![CDATA[33
Deletex bigdeleteKduPc bigduPD esreverR midinhhdleGxx midelletehhhxGfmoo
THis ratHer obnoXious line oF CHaraCters surPrisingly triggers no Commands
This is an arbitrary line of text which will no doubt do interesting things
THIS IS A DIFFERENT ARBITRARY LINE OF TEXT WHICH LOOKS LIKE BEING YELLED AT
vi is the best editor in the world and I laugh in the face of those who say different
chopsticks with the cursor hhhhhhLLLLLLhhhhLLLLLLLLhhhhhhLLLLLLhhhhLLLLLwhee
1234567890
1x2x3x4x5x6x7x8x9x0x1h2h3h4h5h6h7h8h9h0
1x2x3x4x5x6x7x8x9x0x1h2h3h4h5h6h7h8h9h0GR
old love i know i made a big mistake if you give half a chance ill try to erase
all the pain ive caused you all the hurt ive made you go through old love come
on and lets try it again
This is our night for a kiss and a hug Yes when you sent us there into the thin
clear air  When youre sad and blue Ill show you just what to do  You can look at
the stars gaze at the moon But kiss me it cant be too soon
Call me Ishmael  Some years ago never mind how long precisely having little or no money in my purse
and nothing particular to interest me on shore I thought I would sail about a little and see the
watery part of the world  It is a way I have of driving off the spleen and regulating the
circulation  Whenever I find myself growing grim about the mouth whenever it is a damp drizzly
November in my soul whenever I find myself involuntarily pausing before coffin warehouses and
bringing up the rear of every funeral I meet and especially whenever my hypos get such an upper
hand of me that it requires a strong moral principle to prevent me from deliberately stepping into
the street and methodically knocking peoples hats off then I account it high time to get to sea as
soon as I can  This is my substitute for pistol and ball  With a philosophical flourish Cato throws
himself upon his sword I quietly take to the ship  There is nothing surprising in this  If they but
knew it almost all men in their degree some time or other cherish very nearly the same feelings
towards the ocean with me
xKcDRpWhLfG
zxKcDRpWhLfG
xKcDRpWhLfGblabla
abCdhhhhhLLLLLhhhhhLLLLLhh
x
a
]]></test_input>
<test_output><![CDATA[moo^elet duPP bigduPbigduP reverse middle midelete
THis ratHer obnoXious line oF CHaraCters surPrisingly triggers no Commands^
 tt i will no doubt do interesting ings^tiwis is an arbitrary line oT
THIS IS A EFFIENT AABITY INE OF TEXT HICH S E BEIN YEEYEE AT^
erent^ ose o say diwtaae ovi is e best editor in e world and I lau in e tgtt
stiiks wi e  ursor ttee^w
1234567890^
0^987654321
1234567890^
 a anne ill try to erase^  you giveal old love i know i made a big mistake i
ain ive  aused you all eurt ive made you go rou old love  ome^gt tt
on and lets try it again^
or a kiss and aug Yes en you sent us ere into e in^tttw is is our nit gT
lear air en youre sad and blue Ill ow you just at to do  You  an look at^ws 
e stars gaze at e moon But kiss me it  ant be too soon^tt
urse^  s
artiiular to interest me on ore I out I would sail about a little and see e^tgtst
leen and regulating e^tt driving o e world  It is a way Iave o tart o
 drizzly^wttind myselirrulation enever I  
in warouses and^eore  oausing beind myselNovember in my soul enever I w
er^u w every  e rear ot
ing into^revent me tand o
 en I aaaount iti time to get to sea as^g tlesats o tt
louri Cato rows^tsiial t
 ey but^trising in is  IttTst imsel
eelings^knew it almost all men in eir degree some time or oer eri very nearly e same ts tt
towards e ooean wi me^tt
^
^
blabla^
ab^Cd
^
a^
]]></test_output>
<hint><![CDATA[]]></hint>
<source><![CDATA[2008 ACM ICPC South Central USA Regional Programming Contest]]></source>
<solution language="C++"><![CDATA[#include <ctype.h>
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <string>

using namespace std;

/*
 * DEBUG ONLY: If compiled -DSTEP, the contents of the edit buffer are displayed
 * to stderr after every single command/character in the input. Usefull for
 * tracing the behavior of individual commands.
 */

/* SANITY CHECK: assertion macro for verifying input data and internal state */
#define ASSERT(e) { if(!(e)) { cerr << #e << endl; throw; } }

/* Print the edit buffer and cursor position to specified stream */
void output(ostream &out, string buffer, int cursor)
{
    out << buffer.substr(0, cursor) << '^' << buffer.substr(cursor) << endl;
}

/* Main body of program */
void process(void)
{
    int data_num, data_idx;

    /* Read how many data sets to process */
    cin >> data_num;
    
    /* Skip over the trailing newline so getline() doesn't see it */
    cin >> ws;
    
    /* Process each data set separately */
    for(data_idx = 0; data_idx < data_num; data_idx++) {
        string buffer, input;
        int cursor = 0;

        /* Read line of input and process one character at a time */        
        getline(cin, input);
        for(int i = 0; i < input.size(); i++) {
            char key = input[i];
            int pos;
            
            switch(key) {

                /* Backspace (delete one char to the left); one gap left */
                case 'x':
                    if(cursor > 0) {
                        buffer.erase(cursor - 1, 1);
                        cursor--;
                    }
                    break;
                    
                /* Erase non-space to the left; gap right of the stop char */
                case 'K':
                    pos = buffer.rfind(" ", cursor);
                    if(pos == string::npos)
                        pos == -1;
                    if(pos != cursor - 1) {
                        buffer.erase(pos + 1, cursor - pos - 1);
                        cursor -= cursor - pos - 1;
                    }
                    break;
                    
                /* Duplicate one char from left to right; one gap right */
                case 'c':
                    if(cursor > 0) {
                        buffer.insert(cursor, 1, buffer[cursor - 1]);
                        cursor++;
                    }
                    break;
                                    
                /* Duplicate non-space to the left; gap right of duplication */
                case 'D':
                    pos = buffer.rfind(" ", cursor);
                    if(pos == string::npos)
                        pos == -1;
                    if(pos != cursor - 1) {
                        buffer.insert(cursor, buffer.substr(pos + 1,
                            cursor - pos - 1));
                        cursor += cursor - pos - 1;
                    }
                    break;
                                    
                /* Reverse non-space to the left; no cursor change */
                case 'R':
                    pos = buffer.rfind(" ", cursor);
                    if(pos == string::npos)
                        pos == -1;
                    if(pos != cursor - 1)                
                        reverse(&buffer[pos + 1], &buffer[cursor]);
                    break;
                    
                /* Delete all chars to the left; cursor to start */
                case 'p':
                    buffer.erase(0, cursor);
                    cursor = 0;
                    break;
                
                /* Delete all chars to the right; no cursor change */
                case 'W':
                    buffer.erase(cursor);
                    break;
                    
                /* Move cursor one gap to the left */                
                case 'h':
                    if(cursor > 0)
                        cursor--;
                    break;
                    
                /* Move cursor one gap to the right */
                case 'L':
                    if(cursor < buffer.size())
                        cursor++;
                    break;                    
                
                /* Move cursor to the first gap on the line */                  
                case 'f':
                    cursor = 0;
                    break;
                            
                /* Move cursor to the last gap one the line */
                case 'G':
                    cursor = buffer.size();
                    break;
                    
                /* Insert char at cursor position; one gap right */
                default:
                    ASSERT(isalnum(key) || key == ' ');
                    buffer.insert(cursor, 1, key);
                    cursor++; 
                    break;
            }
#ifdef STEP
            cerr << input.substr(i) << endl;
            output(cerr, buffer, cursor);
#endif            
        }        
        output(cout, buffer, cursor);
#ifdef STEP
        cerr << endl; 
#endif           
    }
}

/* Run program and print out any exceptions that occur */
int main(void)
{
    /* Throw exceptions on EOF or failed data extraction in >> operator */
    cin.exceptions(ios::eofbit | ios::failbit);

    /* Run main body of code */
    try {
        process();
    }
    
    /* Catch unexpected EOF or bad input data */
    catch(ios::failure const &e) {
        cerr << "Unexpected EOF or data type mismatch on input" << endl;
    }

    return 0;
}

]]></solution>
<![CDATA[]]>
</item>
</fps>