void p(array a) {
foreach (a, mixed x) write(x + " ");
write("\n");
}
void swap(array a, int i, int j) {
mixed t = a[i];a[i] = a[j];a[j] = t;
}
void bsort(array a) {
for (int size = sizeof(a); 0 < size; size--)
for (int i = 1; i < size; i++)
if (a[i] < a[i - 1]) swap(a, i - 1, i);
}
int main() {
function f = lambda(array a) {p(a), bsort(a), p(a);};
function g = lambda(array a) {f(Array.shuffle(a));};
g(({1, 2, 3, 4}));
g(({"a", "b", "c", "d"}));
return 0;
}
dm9pZCBwKGFycmF5IGEpIHsKICBmb3JlYWNoIChhLCBtaXhlZCB4KSB3cml0ZSh4ICsgIiAiKTsKICB3cml0ZSgiXG4iKTsKfQp2b2lkIHN3YXAoYXJyYXkgYSwgaW50IGksIGludCBqKSB7CiAgbWl4ZWQgdCA9IGFbaV07YVtpXSA9IGFbal07YVtqXSA9IHQ7Cn0Kdm9pZCBic29ydChhcnJheSBhKSB7CiAgZm9yIChpbnQgc2l6ZSA9IHNpemVvZihhKTsgMCA8IHNpemU7IHNpemUtLSkgCiAgICBmb3IgKGludCBpID0gMTsgaSA8IHNpemU7IGkrKykgCiAgICAgIGlmIChhW2ldIDwgYVtpIC0gMV0pIHN3YXAoYSwgaSAtIDEsIGkpOwp9CmludCBtYWluKCkgewogIGZ1bmN0aW9uIGYgPSBsYW1iZGEoYXJyYXkgYSkge3AoYSksIGJzb3J0KGEpLCBwKGEpO307CiAgZnVuY3Rpb24gZyA9IGxhbWJkYShhcnJheSBhKSB7ZihBcnJheS5zaHVmZmxlKGEpKTt9OwogIGcoKHsxLCAyLCAzLCA0fSkpOwogIGcoKHsiYSIsICJiIiwgImMiLCAiZCJ9KSk7CiAgcmV0dXJuIDA7Cn0K