/* 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
{
{
for (int i : new Seii(2, 42)) {
}
}
}
class Seii implements Iterable<Integer> {
private int current;
private int max;
public Seii(int current, int max) {
this.current = current;
this.max = max;
}
@Override
public Iterator<Integer> iterator() {
return new SeiIterator(current, max);
}
}
class SeiIterator implements Iterator<Integer> {
private int current;
private int max;
public SeiIterator(int current, int max) {
this.current = current;
this.max = max;
}
@Override
public boolean hasNext() {
return current < max;
}
@Override
current = (3*current)/2;
return current;
}
@Override
public void remove() {
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCWZvciAoaW50IGkgOiBuZXcgU2VpaSgyLCA0MikpIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKGkpOwoJCX0KCX0KfQoKY2xhc3MgU2VpaSBpbXBsZW1lbnRzIEl0ZXJhYmxlPEludGVnZXI+IHsKCXByaXZhdGUgaW50IGN1cnJlbnQ7CiAgICBwcml2YXRlIGludCBtYXg7CiAgICBwdWJsaWMgU2VpaShpbnQgY3VycmVudCwgaW50IG1heCkgewogICAgICAgIHRoaXMuY3VycmVudCA9IGN1cnJlbnQ7CiAgICAgICAgdGhpcy5tYXggPSBtYXg7CiAgICB9CglAT3ZlcnJpZGUKCXB1YmxpYyBJdGVyYXRvcjxJbnRlZ2VyPiBpdGVyYXRvcigpIHsKCQlyZXR1cm4gbmV3IFNlaUl0ZXJhdG9yKGN1cnJlbnQsIG1heCk7Cgl9Cn0KCmNsYXNzIFNlaUl0ZXJhdG9yIGltcGxlbWVudHMgSXRlcmF0b3I8SW50ZWdlcj4gewogICAgcHJpdmF0ZSBpbnQgY3VycmVudDsKICAgIHByaXZhdGUgaW50IG1heDsKICAgIHB1YmxpYyBTZWlJdGVyYXRvcihpbnQgY3VycmVudCwgaW50IG1heCkgewogICAgICAgIHRoaXMuY3VycmVudCA9IGN1cnJlbnQ7CiAgICAgICAgdGhpcy5tYXggPSBtYXg7CiAgICB9CiAgICBAT3ZlcnJpZGUKICAgIHB1YmxpYyBib29sZWFuIGhhc05leHQoKSB7CiAgICAgICAgcmV0dXJuIGN1cnJlbnQgPCBtYXg7CiAgICB9CiAgICBAT3ZlcnJpZGUKICAgIHB1YmxpYyBJbnRlZ2VyIG5leHQoKSB7CiAgICAgICAgY3VycmVudCA9ICgzKmN1cnJlbnQpLzI7CiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7CiAgICB9CiAgICBAT3ZlcnJpZGUKICAgIHB1YmxpYyB2b2lkIHJlbW92ZSgpIHsKICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKICAgIH0KfQ==