#!/usr/bin/perl
use strict;
use warnings;
sub merge {
my($s, @b) = @_;
if (@a * @b == 0) { return @a, @b; } my($head) = $a[0] < $b[0] ? shift(@a) : shift(@b); }
sub mergesort {
if ($half == 0) { return @_; }
return merge
($half, mergesort
(splice(@_, $half)), mergesort
(@_)); }
my(@sorted) = mergesort(10, 9, 8, 4, 5, 6, 7, 3, 2, 1);
IyEvdXNyL2Jpbi9wZXJsCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBtZXJnZSB7CiAgbXkoJHMsIEBiKSA9IEBfOwogIG15KEBhKSA9IHNwbGljZShAYiwgJHMpOwoKICBpZiAoQGEgKiBAYiA9PSAwKSB7IHJldHVybiBAYSwgQGI7IH0KICBteSgkaGVhZCkgPSAkYVswXSA8ICRiWzBdID8gc2hpZnQoQGEpIDogc2hpZnQoQGIpOwogIHJldHVybiAkaGVhZCwgbWVyZ2UoaW50KEBhKSwgQGEsIEBiKTsKfQoKc3ViIG1lcmdlc29ydCB7CiAgbXkoJGhhbGYpID0gaW50KEBfIC8gMik7CiAgaWYgKCRoYWxmID09IDApIHsgcmV0dXJuIEBfOyB9CgogIHJldHVybiBtZXJnZSgkaGFsZiwgbWVyZ2Vzb3J0KHNwbGljZShAXywgJGhhbGYpKSwgbWVyZ2Vzb3J0KEBfKSk7Cn0KCm15KEBzb3J0ZWQpID0gbWVyZ2Vzb3J0KDEwLCA5LCA4LCA0LCA1LCA2LCA3LCAzLCAyLCAxKTsKcHJpbnQoam9pbigiICIsIEBzb3J0ZWQpIC4gIlxuIik7