/* 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
{
static <T> T recursiveLast(ListIterator<T> iter) {
if (!iter.hasNext()) {
// It is invalid to call recursiveLast on an empty list
return null;
}
T val = iter.next();
if (iter.hasNext()) {
val = recursiveLast(iter);
}
iter.previous();
iter.set(val);
return val;
}
{
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
recursiveLast(list.listIterator());
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXN0YXRpYyA8VD4gVCByZWN1cnNpdmVMYXN0KExpc3RJdGVyYXRvcjxUPiBpdGVyKSB7CgkJaWYgKCFpdGVyLmhhc05leHQoKSkgewoJCQkvLyBJdCBpcyBpbnZhbGlkIHRvIGNhbGwgcmVjdXJzaXZlTGFzdCBvbiBhbiBlbXB0eSBsaXN0CgkJCXJldHVybiBudWxsOwoJCX0KCQlUIHZhbCA9IGl0ZXIubmV4dCgpOwoJCWlmIChpdGVyLmhhc05leHQoKSkgewoJCQl2YWwgPSByZWN1cnNpdmVMYXN0KGl0ZXIpOwoJCX0KCQlpdGVyLnByZXZpb3VzKCk7CgkJaXRlci5zZXQodmFsKTsKCQlyZXR1cm4gdmFsOwoJfQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJTGlzdDxJbnRlZ2VyPiBsaXN0ID0gbmV3IEFycmF5TGlzdDxJbnRlZ2VyPigpOwoJCWxpc3QuYWRkKDEpOwoJCWxpc3QuYWRkKDIpOwoJCWxpc3QuYWRkKDMpOwoJCXJlY3Vyc2l2ZUxhc3QobGlzdC5saXN0SXRlcmF0b3IoKSk7CgkJZm9yIChJbnRlZ2VyIGkgOiBsaXN0KSB7CgkJCVN5c3RlbS5vdXQucHJpbnRsbihpKTsKCQl9Cgl9Cn0=