<?php
function uintprint5($a)
{
return sprintf("%u %u %u %u %u", $a[0], $a[1], $a[2], $a[3], $a[4]); }
function sort5(&$a)
{
$mask = gmp_init('29c05310a60c4c15182838506620ca8194232817102d405a10b40c68109c2133026444c851908b8116222c28584630887110d421a303444688', 16); $bits = (intval($a[0] <= $a[1]) ) | (intval($a[1] <= $a[2]) << 1) | (intval($a[2] <= $a[3]) << 2) | (intval($a[3] <= $a[4]) << 3) | (intval($a[0] <= $a[2]) << 4) | (intval($a[1] <= $a[3]) << 5) | (intval($a[2] <= $a[4]) << 6) | (intval($a[0] <= $a[3]) << 7) | (intval($a[1] <= $a[4]) << 8) | (intval($a[0] <= $a[4]) << 9); 0x000 => 0,
0x001 => 228,
0x002 => 303,
0x004 => 168,
0x005 => 396,
0x008 => 57,
0x009 => 285,
0x00a => 360,
0x011 => 75,
0x012 => 150,
0x013 => 378,
0x019 => 132,
0x01a => 207,
0x01b => 435,
0x022 => 246,
0x024 => 111,
0x026 => 414,
0x032 => 93,
0x044 => 153,
0x045 => 381,
0x048 => 42,
0x049 => 270,
0x04c => 210,
0x04d => 438,
0x064 => 96,
0x085 => 339,
0x091 => 18,
0x093 => 321,
0x095 => 186,
0x0a4 => 54,
0x0a5 => 282,
0x0a6 => 357,
0x0b2 => 36,
0x0b3 => 264,
0x0b5 => 129,
0x0b6 => 204,
0x0b7 => 432,
0x0c5 => 324,
0x0e4 => 39,
0x0e5 => 267,
0x10a => 345,
0x11a => 192,
0x122 => 231,
0x126 => 399,
0x12a => 288,
0x132 => 78,
0x13a => 135,
0x148 => 27,
0x14a => 330,
0x14c => 195,
0x164 => 81,
0x166 => 384,
0x16a => 273,
0x16c => 138,
0x16e => 441,
0x1a6 => 342,
0x1b2 => 21,
0x1b6 => 189,
0x1e4 => 24,
0x1e6 => 327,
0x219 => 117,
0x21b => 420,
0x249 => 255,
0x24d => 423,
0x259 => 102,
0x291 => 3,
0x293 => 306,
0x295 => 171,
0x299 => 60,
0x29b => 363,
0x2b3 => 249,
0x2b5 => 114,
0x2b7 => 417,
0x2c5 => 309,
0x2cd => 366,
0x2d5 => 156,
0x2d9 => 45,
0x2dd => 213,
0x2e5 => 252,
0x2f5 => 99,
0x31a => 177,
0x31b => 405,
0x33a => 120,
0x348 => 12,
0x349 => 240,
0x34a => 315,
0x34c => 180,
0x34d => 408,
0x359 => 87,
0x35a => 162,
0x35b => 390,
0x36a => 258,
0x36c => 123,
0x36e => 426,
0x37a => 105,
0x39b => 348,
0x3b2 => 6,
0x3b3 => 234,
0x3b6 => 174,
0x3b7 => 402,
0x3ba => 63,
0x3bb => 291,
0x3cd => 351,
0x3d9 => 30,
0x3db => 333,
0x3dd => 198,
0x3e4 => 9,
0x3e5 => 237,
0x3e6 => 312,
0x3ec => 66,
0x3ed => 294,
0x3ee => 369,
0x3f5 => 84,
0x3f6 => 159,
0x3f7 => 387,
0x3fa => 48,
0x3fb => 276,
0x3fd => 141,
0x3fe => 216,
0x3ff => 444,
);
$mask >>= $b[$bits];
$mask >>= 3;
$mask >>= 3;
$mask >>= 3;
$mask >>= 3;
$tmp = array($a[$i0], $a[$i1], $a[$i2], $a[$i3], $a[$i4]); $a = $tmp;
}
);
foreach($mutations as $mutation) {
$tmp = $mutation;
sort5($tmp);
echo '(' . uintprint5($mutation) . ') -> (' . uintprint5($tmp) . ')' . PHP_EOL;
}
PD9waHAKZnVuY3Rpb24gdWludHByaW50NSgkYSkKewogIHJldHVybiBzcHJpbnRmKCIldSAldSAldSAldSAldSIsICRhWzBdLCAkYVsxXSwgJGFbMl0sICRhWzNdLCAkYVs0XSk7Cn0KCmZ1bmN0aW9uIHNvcnQ1KCYkYSkKewogICRtYXNrID0gZ21wX2luaXQoJzI5YzA1MzEwYTYwYzRjMTUxODI4Mzg1MDY2MjBjYTgxOTQyMzI4MTcxMDJkNDA1YTEwYjQwYzY4MTA5YzIxMzMwMjY0NDRjODUxOTA4YjgxMTYyMjJjMjg1ODQ2MzA4ODcxMTBkNDIxYTMwMzQ0NDY4OCcsIDE2KTsKICAkYml0cyA9IChpbnR2YWwoJGFbMF0gPD0gJGFbMV0pICAgICApIHwgKGludHZhbCgkYVsxXSA8PSAkYVsyXSkgPDwgMSkgfCAoaW50dmFsKCRhWzJdIDw9ICRhWzNdKSA8PCAyKSB8IChpbnR2YWwoJGFbM10gPD0gJGFbNF0pIDw8IDMpCiAgICAgICAgICB8IChpbnR2YWwoJGFbMF0gPD0gJGFbMl0pIDw8IDQpIHwgKGludHZhbCgkYVsxXSA8PSAkYVszXSkgPDwgNSkgfCAoaW50dmFsKCRhWzJdIDw9ICRhWzRdKSA8PCA2KQogICAgICAgICAgfCAoaW50dmFsKCRhWzBdIDw9ICRhWzNdKSA8PCA3KSB8IChpbnR2YWwoJGFbMV0gPD0gJGFbNF0pIDw8IDgpIHwgKGludHZhbCgkYVswXSA8PSAkYVs0XSkgPDwgOSk7CiAgJGIgPSBhcnJheSgKICAgIDB4MDAwID0+IDAsCiAgICAweDAwMSA9PiAyMjgsCiAgICAweDAwMiA9PiAzMDMsCiAgICAweDAwNCA9PiAxNjgsCiAgICAweDAwNSA9PiAzOTYsCiAgICAweDAwOCA9PiA1NywKICAgIDB4MDA5ID0+IDI4NSwKICAgIDB4MDBhID0+IDM2MCwKICAgIDB4MDExID0+IDc1LAogICAgMHgwMTIgPT4gMTUwLAogICAgMHgwMTMgPT4gMzc4LAogICAgMHgwMTkgPT4gMTMyLAogICAgMHgwMWEgPT4gMjA3LAogICAgMHgwMWIgPT4gNDM1LAogICAgMHgwMjIgPT4gMjQ2LAogICAgMHgwMjQgPT4gMTExLAogICAgMHgwMjYgPT4gNDE0LAogICAgMHgwMzIgPT4gOTMsCiAgICAweDA0NCA9PiAxNTMsCiAgICAweDA0NSA9PiAzODEsCiAgICAweDA0OCA9PiA0MiwKICAgIDB4MDQ5ID0+IDI3MCwKICAgIDB4MDRjID0+IDIxMCwKICAgIDB4MDRkID0+IDQzOCwKICAgIDB4MDY0ID0+IDk2LAogICAgMHgwODUgPT4gMzM5LAogICAgMHgwOTEgPT4gMTgsCiAgICAweDA5MyA9PiAzMjEsCiAgICAweDA5NSA9PiAxODYsCiAgICAweDBhNCA9PiA1NCwKICAgIDB4MGE1ID0+IDI4MiwKICAgIDB4MGE2ID0+IDM1NywKICAgIDB4MGIyID0+IDM2LAogICAgMHgwYjMgPT4gMjY0LAogICAgMHgwYjUgPT4gMTI5LAogICAgMHgwYjYgPT4gMjA0LAogICAgMHgwYjcgPT4gNDMyLAogICAgMHgwYzUgPT4gMzI0LAogICAgMHgwZTQgPT4gMzksCiAgICAweDBlNSA9PiAyNjcsCiAgICAweDEwYSA9PiAzNDUsCiAgICAweDExYSA9PiAxOTIsCiAgICAweDEyMiA9PiAyMzEsCiAgICAweDEyNiA9PiAzOTksCiAgICAweDEyYSA9PiAyODgsCiAgICAweDEzMiA9PiA3OCwKICAgIDB4MTNhID0+IDEzNSwKICAgIDB4MTQ4ID0+IDI3LAogICAgMHgxNGEgPT4gMzMwLAogICAgMHgxNGMgPT4gMTk1LAogICAgMHgxNjQgPT4gODEsCiAgICAweDE2NiA9PiAzODQsCiAgICAweDE2YSA9PiAyNzMsCiAgICAweDE2YyA9PiAxMzgsCiAgICAweDE2ZSA9PiA0NDEsCiAgICAweDFhNiA9PiAzNDIsCiAgICAweDFiMiA9PiAyMSwKICAgIDB4MWI2ID0+IDE4OSwKICAgIDB4MWU0ID0+IDI0LAogICAgMHgxZTYgPT4gMzI3LAogICAgMHgyMTkgPT4gMTE3LAogICAgMHgyMWIgPT4gNDIwLAogICAgMHgyNDkgPT4gMjU1LAogICAgMHgyNGQgPT4gNDIzLAogICAgMHgyNTkgPT4gMTAyLAogICAgMHgyOTEgPT4gMywKICAgIDB4MjkzID0+IDMwNiwKICAgIDB4Mjk1ID0+IDE3MSwKICAgIDB4Mjk5ID0+IDYwLAogICAgMHgyOWIgPT4gMzYzLAogICAgMHgyYjMgPT4gMjQ5LAogICAgMHgyYjUgPT4gMTE0LAogICAgMHgyYjcgPT4gNDE3LAogICAgMHgyYzUgPT4gMzA5LAogICAgMHgyY2QgPT4gMzY2LAogICAgMHgyZDUgPT4gMTU2LAogICAgMHgyZDkgPT4gNDUsCiAgICAweDJkZCA9PiAyMTMsCiAgICAweDJlNSA9PiAyNTIsCiAgICAweDJmNSA9PiA5OSwKICAgIDB4MzFhID0+IDE3NywKICAgIDB4MzFiID0+IDQwNSwKICAgIDB4MzNhID0+IDEyMCwKICAgIDB4MzQ4ID0+IDEyLAogICAgMHgzNDkgPT4gMjQwLAogICAgMHgzNGEgPT4gMzE1LAogICAgMHgzNGMgPT4gMTgwLAogICAgMHgzNGQgPT4gNDA4LAogICAgMHgzNTkgPT4gODcsCiAgICAweDM1YSA9PiAxNjIsCiAgICAweDM1YiA9PiAzOTAsCiAgICAweDM2YSA9PiAyNTgsCiAgICAweDM2YyA9PiAxMjMsCiAgICAweDM2ZSA9PiA0MjYsCiAgICAweDM3YSA9PiAxMDUsCiAgICAweDM5YiA9PiAzNDgsCiAgICAweDNiMiA9PiA2LAogICAgMHgzYjMgPT4gMjM0LAogICAgMHgzYjYgPT4gMTc0LAogICAgMHgzYjcgPT4gNDAyLAogICAgMHgzYmEgPT4gNjMsCiAgICAweDNiYiA9PiAyOTEsCiAgICAweDNjZCA9PiAzNTEsCiAgICAweDNkOSA9PiAzMCwKICAgIDB4M2RiID0+IDMzMywKICAgIDB4M2RkID0+IDE5OCwKICAgIDB4M2U0ID0+IDksCiAgICAweDNlNSA9PiAyMzcsCiAgICAweDNlNiA9PiAzMTIsCiAgICAweDNlYyA9PiA2NiwKICAgIDB4M2VkID0+IDI5NCwKICAgIDB4M2VlID0+IDM2OSwKICAgIDB4M2Y1ID0+IDg0LAogICAgMHgzZjYgPT4gMTU5LAogICAgMHgzZjcgPT4gMzg3LAogICAgMHgzZmEgPT4gNDgsCiAgICAweDNmYiA9PiAyNzYsCiAgICAweDNmZCA9PiAxNDEsCiAgICAweDNmZSA9PiAyMTYsCiAgICAweDNmZiA9PiA0NDQsCiAgKTsKICAkbWFzayA+Pj0gJGJbJGJpdHNdOwogICRpNCA9IGdtcF9pbnR2YWwoZ21wX21vZCgkbWFzayw4KSk7CiAgJG1hc2sgPj49IDM7CiAgJGkzID0gZ21wX2ludHZhbChnbXBfbW9kKCRtYXNrLDgpKTsKICAkbWFzayA+Pj0gMzsKICAkaTIgPSBnbXBfaW50dmFsKGdtcF9tb2QoJG1hc2ssOCkpOwogICRtYXNrID4+PSAzOwogICRpMSA9IGdtcF9pbnR2YWwoZ21wX21vZCgkbWFzayw4KSk7CiAgJG1hc2sgPj49IDM7CiAgJGkwID0gZ21wX2ludHZhbChnbXBfbW9kKCRtYXNrLDgpKTsKICAkdG1wID0gYXJyYXkoJGFbJGkwXSwgJGFbJGkxXSwgJGFbJGkyXSwgJGFbJGkzXSwgJGFbJGk0XSk7CiAgJGEgPSAkdG1wOwp9CiAKJG11dGF0aW9ucyA9IGFycmF5KAphcnJheSgwLCAxLCAyLCAzLCA0KSwgCmFycmF5KDAsIDEsIDIsIDQsIDMpLCAKYXJyYXkoMCwgMSwgMywgMiwgNCksIAphcnJheSgwLCAxLCAzLCA0LCAyKSwgCmFycmF5KDAsIDEsIDQsIDIsIDMpLCAKYXJyYXkoMCwgMSwgNCwgMywgMiksIAphcnJheSgwLCAyLCAxLCAzLCA0KSwgCmFycmF5KDAsIDIsIDEsIDQsIDMpLCAKYXJyYXkoMCwgMiwgMywgMSwgNCksIAphcnJheSgwLCAyLCAzLCA0LCAxKSwgCmFycmF5KDAsIDIsIDQsIDEsIDMpLCAKYXJyYXkoMCwgMiwgNCwgMywgMSksIAphcnJheSgwLCAzLCAxLCAyLCA0KSwgCmFycmF5KDAsIDMsIDEsIDQsIDIpLCAKYXJyYXkoMCwgMywgMiwgMSwgNCksIAphcnJheSgwLCAzLCAyLCA0LCAxKSwgCmFycmF5KDAsIDMsIDQsIDEsIDIpLCAKYXJyYXkoMCwgMywgNCwgMiwgMSksIAphcnJheSgwLCA0LCAxLCAyLCAzKSwgCmFycmF5KDAsIDQsIDEsIDMsIDIpLCAKYXJyYXkoMCwgNCwgMiwgMSwgMyksIAphcnJheSgwLCA0LCAyLCAzLCAxKSwgCmFycmF5KDAsIDQsIDMsIDEsIDIpLCAKYXJyYXkoMCwgNCwgMywgMiwgMSksIAphcnJheSgxLCAwLCAyLCAzLCA0KSwgCmFycmF5KDEsIDAsIDIsIDQsIDMpLCAKYXJyYXkoMSwgMCwgMywgMiwgNCksIAphcnJheSgxLCAwLCAzLCA0LCAyKSwgCmFycmF5KDEsIDAsIDQsIDIsIDMpLCAKYXJyYXkoMSwgMCwgNCwgMywgMiksIAphcnJheSgxLCAyLCAwLCAzLCA0KSwgCmFycmF5KDEsIDIsIDAsIDQsIDMpLCAKYXJyYXkoMSwgMiwgMywgMCwgNCksIAphcnJheSgxLCAyLCAzLCA0LCAwKSwgCmFycmF5KDEsIDIsIDQsIDAsIDMpLCAKYXJyYXkoMSwgMiwgNCwgMywgMCksIAphcnJheSgxLCAzLCAwLCAyLCA0KSwgCmFycmF5KDEsIDMsIDAsIDQsIDIpLCAKYXJyYXkoMSwgMywgMiwgMCwgNCksIAphcnJheSgxLCAzLCAyLCA0LCAwKSwgCmFycmF5KDEsIDMsIDQsIDAsIDIpLCAKYXJyYXkoMSwgMywgNCwgMiwgMCksIAphcnJheSgxLCA0LCAwLCAyLCAzKSwgCmFycmF5KDEsIDQsIDAsIDMsIDIpLCAKYXJyYXkoMSwgNCwgMiwgMCwgMyksIAphcnJheSgxLCA0LCAyLCAzLCAwKSwgCmFycmF5KDEsIDQsIDMsIDAsIDIpLCAKYXJyYXkoMSwgNCwgMywgMiwgMCksIAphcnJheSgyLCAwLCAxLCAzLCA0KSwgCmFycmF5KDIsIDAsIDEsIDQsIDMpLCAKYXJyYXkoMiwgMCwgMywgMSwgNCksIAphcnJheSgyLCAwLCAzLCA0LCAxKSwgCmFycmF5KDIsIDAsIDQsIDEsIDMpLCAKYXJyYXkoMiwgMCwgNCwgMywgMSksIAphcnJheSgyLCAxLCAwLCAzLCA0KSwgCmFycmF5KDIsIDEsIDAsIDQsIDMpLCAKYXJyYXkoMiwgMSwgMywgMCwgNCksIAphcnJheSgyLCAxLCAzLCA0LCAwKSwgCmFycmF5KDIsIDEsIDQsIDAsIDMpLCAKYXJyYXkoMiwgMSwgNCwgMywgMCksIAphcnJheSgyLCAzLCAwLCAxLCA0KSwgCmFycmF5KDIsIDMsIDAsIDQsIDEpLCAKYXJyYXkoMiwgMywgMSwgMCwgNCksIAphcnJheSgyLCAzLCAxLCA0LCAwKSwgCmFycmF5KDIsIDMsIDQsIDAsIDEpLCAKYXJyYXkoMiwgMywgNCwgMSwgMCksIAphcnJheSgyLCA0LCAwLCAxLCAzKSwgCmFycmF5KDIsIDQsIDAsIDMsIDEpLCAKYXJyYXkoMiwgNCwgMSwgMCwgMyksIAphcnJheSgyLCA0LCAxLCAzLCAwKSwgCmFycmF5KDIsIDQsIDMsIDAsIDEpLCAKYXJyYXkoMiwgNCwgMywgMSwgMCksIAphcnJheSgzLCAwLCAxLCAyLCA0KSwgCmFycmF5KDMsIDAsIDEsIDQsIDIpLCAKYXJyYXkoMywgMCwgMiwgMSwgNCksIAphcnJheSgzLCAwLCAyLCA0LCAxKSwgCmFycmF5KDMsIDAsIDQsIDEsIDIpLCAKYXJyYXkoMywgMCwgNCwgMiwgMSksIAphcnJheSgzLCAxLCAwLCAyLCA0KSwgCmFycmF5KDMsIDEsIDAsIDQsIDIpLCAKYXJyYXkoMywgMSwgMiwgMCwgNCksIAphcnJheSgzLCAxLCAyLCA0LCAwKSwgCmFycmF5KDMsIDEsIDQsIDAsIDIpLCAKYXJyYXkoMywgMSwgNCwgMiwgMCksIAphcnJheSgzLCAyLCAwLCAxLCA0KSwgCmFycmF5KDMsIDIsIDAsIDQsIDEpLCAKYXJyYXkoMywgMiwgMSwgMCwgNCksIAphcnJheSgzLCAyLCAxLCA0LCAwKSwgCmFycmF5KDMsIDIsIDQsIDAsIDEpLCAKYXJyYXkoMywgMiwgNCwgMSwgMCksIAphcnJheSgzLCA0LCAwLCAxLCAyKSwgCmFycmF5KDMsIDQsIDAsIDIsIDEpLCAKYXJyYXkoMywgNCwgMSwgMCwgMiksIAphcnJheSgzLCA0LCAxLCAyLCAwKSwgCmFycmF5KDMsIDQsIDIsIDAsIDEpLCAKYXJyYXkoMywgNCwgMiwgMSwgMCksIAphcnJheSg0LCAwLCAxLCAyLCAzKSwgCmFycmF5KDQsIDAsIDEsIDMsIDIpLCAKYXJyYXkoNCwgMCwgMiwgMSwgMyksIAphcnJheSg0LCAwLCAyLCAzLCAxKSwgCmFycmF5KDQsIDAsIDMsIDEsIDIpLCAKYXJyYXkoNCwgMCwgMywgMiwgMSksIAphcnJheSg0LCAxLCAwLCAyLCAzKSwgCmFycmF5KDQsIDEsIDAsIDMsIDIpLCAKYXJyYXkoNCwgMSwgMiwgMCwgMyksIAphcnJheSg0LCAxLCAyLCAzLCAwKSwgCmFycmF5KDQsIDEsIDMsIDAsIDIpLCAKYXJyYXkoNCwgMSwgMywgMiwgMCksIAphcnJheSg0LCAyLCAwLCAxLCAzKSwgCmFycmF5KDQsIDIsIDAsIDMsIDEpLCAKYXJyYXkoNCwgMiwgMSwgMCwgMyksIAphcnJheSg0LCAyLCAxLCAzLCAwKSwgCmFycmF5KDQsIDIsIDMsIDAsIDEpLCAKYXJyYXkoNCwgMiwgMywgMSwgMCksIAphcnJheSg0LCAzLCAwLCAxLCAyKSwgCmFycmF5KDQsIDMsIDAsIDIsIDEpLCAKYXJyYXkoNCwgMywgMSwgMCwgMiksIAphcnJheSg0LCAzLCAxLCAyLCAwKSwgCmFycmF5KDQsIDMsIDIsIDAsIDEpLCAKYXJyYXkoNCwgMywgMiwgMSwgMCksIAopOwoKZm9yZWFjaCgkbXV0YXRpb25zIGFzICRtdXRhdGlvbikgewogICAgJHRtcCA9ICRtdXRhdGlvbjsKICAgIHNvcnQ1KCR0bXApOwogICAgZWNobyAnKCcgLiB1aW50cHJpbnQ1KCRtdXRhdGlvbikgLiAnKSAtPiAoJyAuIHVpbnRwcmludDUoJHRtcCkgLiAnKScgLiBQSFBfRU9MOwp9Cg==