## Cards ShufflingVolumes: Game Logic |
best programming related toys I've used (what?):
by Raspberry Pi Curious thing: palm-size single-board computer
for geeky experiments, toy models, embedding |

*Note: you may find it useful to solve Card Names before this*

For any type of card game it is important to be able to shuffle the deck. Since only few of the programming languages
have built-in functions to randomly shuffle an array (like **PHP**) it is necessary to learn some useful algorithm.

Let us agree to use the following symbols to describe cards:

```
ranks: A, 2, 3, 4, 5, 6, 7, 8, 9, T, J, Q, K
suits: C, D, H, S
```

so that `CQ`

is the "Queen of Clubs", `HT`

is the "Ten of Hearts", `D2`

is the "Two of Diamonds" and `SA`

is the "Ace of Spades".

There are `52`

cards in total, so they should be put into an array of `52`

elements before shuffling. Initial ordering
of the array is the following: 13 cards of Clubs, then 13 cards of Diamonds, then 13 cards of Hearts and at last 13
cards of Spades. Inside of each suit cards are arranged from Ace to King, so the whole deck looks like:

```
[ CA, C2, C3, ..., CQ, CK, DA, D2, ..., DK, HA, H2, ..., HK, SA, S2, ..., SK ]
```

Then you should for each card generate some random number in the range `0 ... 51`

and swap this card with another,
occupying the selected position (let indexes of array start from `0`

). This may look like:

```
FOR i = 0 ... 51 :
LET j = RANDOM(0 ... 51)
SWAP deck[i] WITH deck[j]
```

For example, we take the first card `CA`

and generate random value `15`

for it - this means that card should be moved
to position 15, where `D3`

was - and `D3`

should be moved back to position `0`

. Then we take `C2`

from the position
`1`

and generate next random number `50`

- so `C2`

is swapped with `SQ`

. And so on.

You will be given the sequence of non-negative integer random numbers - if they are greater than necessary, trim them
to required range by taking `modulo 52`

, like in the Double Dice Roll task. Perform the
shuffling and print the new order of cards as an answer.

**Input data** will contain 52 non-negative integer numbers, which you should use to shuffle the deck as described.

**Answer** should contain cards from shuffled array, separated with spaces.

Example (long lines wrapped):

```
input data:
5814 1316 2080 2712 0 647 8098 315 44 6354 7867 100 61 763 6731 685 42 9309 569 92 701 562
85 8311 698 220 929 71 684 518 113 61 19 168 745 16 655 9548 6018 2686 25 785 81 721
964 85 44 614 4 509 8708 19
answer:
C5 D5 S4 C8 CQ S3 HK C9 H3 H6 D3 ST DT HT C6 CK DA H9 SJ SK DK C2 DQ S5 H4 D7 S7 S2 C4 D9 CT
HJ HQ D2 SA CA H5 H2 C7 D4 CJ D6 S9 HA S8 D8 S6 SQ C3 DJ H8 H7
```

You need to login to get test data and submit solution.