/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Sorter<Integer> idSorter = new Sorter<>(new idComparator());
}
static class Sorter<T extends Comparable> {
Comparator<T> comparator;
int switches = 0,
compares = 0;
public Sorter(Comparator<T> comparator) {
this.comparator = comparator;
}
public Sorter() {
this.comparator = null;
}
protected int compare(T first, T second) {
if (this.comparator == null) {
int cmp = first.compareTo(second);
this.compares++;
return cmp;
}
// return was missing
return 0;
}
}
static class idComparator implements Comparator<Integer> {
return first > second? 1: first == second? 0: 1;
}
}
static class Person {}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVNvcnRlcjxJbnRlZ2VyPiBpZFNvcnRlciA9IG5ldyBTb3J0ZXI8PihuZXcgaWRDb21wYXJhdG9yKCkpOwoJfQoJCglzdGF0aWMgY2xhc3MgU29ydGVyPFQgZXh0ZW5kcyBDb21wYXJhYmxlPiB7CgogICAgICAgIENvbXBhcmF0b3I8VD4gY29tcGFyYXRvcjsKICAgICAgICBpbnQgc3dpdGNoZXMgPSAwLAogICAgICAgICAgICBjb21wYXJlcyA9IDA7CgogICAgICAgIHB1YmxpYyBTb3J0ZXIoQ29tcGFyYXRvcjxUPiBjb21wYXJhdG9yKSB7CiAgICAgICAgICAgIHRoaXMuY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgU29ydGVyKCkgewogICAgICAgICAgICB0aGlzLmNvbXBhcmF0b3IgPSBudWxsOwogICAgICAgIH0KCiAgICAgICAgcHJvdGVjdGVkIGludCBjb21wYXJlKFQgZmlyc3QsIFQgc2Vjb25kKSB7CiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhcmF0b3IgPT0gbnVsbCkgewogICAgICAgICAgICAgICAgaW50IGNtcCA9IGZpcnN0LmNvbXBhcmVUbyhzZWNvbmQpOwogICAgICAgICAgICAgICAgdGhpcy5jb21wYXJlcysrOwogICAgICAgICAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyByZXR1cm4gd2FzIG1pc3NpbmcKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQoJfQoJCglzdGF0aWMgY2xhc3MgaWRDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvcjxJbnRlZ2VyPiB7CgogICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShJbnRlZ2VyIGZpcnN0LCBJbnRlZ2VyIHNlY29uZCkgewogICAgICAgICAgICByZXR1cm4gZmlyc3QgPiBzZWNvbmQ/IDE6IGZpcnN0ID09IHNlY29uZD8gMDogMTsKICAgICAgICB9CiAgICB9CiAgICAKICAgIHN0YXRpYyBjbGFzcyBQZXJzb24ge30KfQ==