import java.util.Objects;
 
class Ideone {
 
    public static void main 
(String[] args
) {         Loop.from(0).to(10).execute(() -> {
            System.
out.
println("Hello World!");         });
    }
}
 
class Loop {
    private final int from;
    private final int to;
 
    private Loop(Builder builder) {
        this.from = builder.from();
        this.to = builder.to();
    }
 
    public static LoopFromSetBuilder from(int from) {
        return new Builder().from(from);
    }
 
    public static LoopToSetBuilder to(int to) {
        return new Builder().to(to);
    }
 
    public void execute
(Runnable executable
) {         for (int i = from; i < to; i++) {
            executable.run();
        }
    }
 
    public static class Builder  implements LoopFromSetBuilder, LoopToSetBuilder, LoopAllSetBuilder {
        private int from = 0;
 
        private Builder() {}
 
        public Builder from(int from) {
            this.from = from;
            return this;
        }
 
        private int from() {
            return from;
        }
 
        public Builder to(int to) {
            this.to = to;
            return this;
        }
 
        private int to() {
            return to;
        }
 
        public void execute
(Runnable runnable
) {             Objects.requireNonNull(runnable);
            new Loop(this).execute(runnable);
        }
    }
 
    interface LoopFromSetBuilder {
        LoopAllSetBuilder to(int to);
    }
 
    interface LoopToSetBuilder {
        LoopAllSetBuilder from(int from);
    }
 
    interface LoopAllSetBuilder {
    }
}
				aW1wb3J0IGphdmEudXRpbC5PYmplY3RzOwoKY2xhc3MgSWRlb25lIHsKCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgewogICAgICAgIExvb3AuZnJvbSgwKS50bygxMCkuZXhlY3V0ZSgoKSAtPiB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSGVsbG8gV29ybGQhIik7CiAgICAgICAgfSk7CiAgICB9Cn0KCmNsYXNzIExvb3AgewogICAgcHJpdmF0ZSBmaW5hbCBpbnQgZnJvbTsKICAgIHByaXZhdGUgZmluYWwgaW50IHRvOwoKICAgIHByaXZhdGUgTG9vcChCdWlsZGVyIGJ1aWxkZXIpIHsKICAgICAgICB0aGlzLmZyb20gPSBidWlsZGVyLmZyb20oKTsKICAgICAgICB0aGlzLnRvID0gYnVpbGRlci50bygpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgTG9vcEZyb21TZXRCdWlsZGVyIGZyb20oaW50IGZyb20pIHsKICAgICAgICByZXR1cm4gbmV3IEJ1aWxkZXIoKS5mcm9tKGZyb20pOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgTG9vcFRvU2V0QnVpbGRlciB0byhpbnQgdG8pIHsKICAgICAgICByZXR1cm4gbmV3IEJ1aWxkZXIoKS50byh0byk7CiAgICB9CgogICAgcHVibGljIHZvaWQgZXhlY3V0ZShSdW5uYWJsZSBleGVjdXRhYmxlKSB7CiAgICAgICAgZm9yIChpbnQgaSA9IGZyb207IGkgPCB0bzsgaSsrKSB7CiAgICAgICAgICAgIGV4ZWN1dGFibGUucnVuKCk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgQnVpbGRlciAgaW1wbGVtZW50cyBMb29wRnJvbVNldEJ1aWxkZXIsIExvb3BUb1NldEJ1aWxkZXIsIExvb3BBbGxTZXRCdWlsZGVyIHsKICAgICAgICBwcml2YXRlIGludCBmcm9tID0gMDsKICAgICAgICBwcml2YXRlIEludGVnZXIgdG8gPSBudWxsOwoKICAgICAgICBwcml2YXRlIEJ1aWxkZXIoKSB7fQoKICAgICAgICBwdWJsaWMgQnVpbGRlciBmcm9tKGludCBmcm9tKSB7CiAgICAgICAgICAgIHRoaXMuZnJvbSA9IGZyb207CiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0KCiAgICAgICAgcHJpdmF0ZSBpbnQgZnJvbSgpIHsKICAgICAgICAgICAgcmV0dXJuIGZyb207CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgQnVpbGRlciB0byhpbnQgdG8pIHsKICAgICAgICAgICAgdGhpcy50byA9IHRvOwogICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CgogICAgICAgIHByaXZhdGUgaW50IHRvKCkgewogICAgICAgICAgICByZXR1cm4gdG87CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgdm9pZCBleGVjdXRlKFJ1bm5hYmxlIHJ1bm5hYmxlKSB7CiAgICAgICAgICAgIE9iamVjdHMucmVxdWlyZU5vbk51bGwocnVubmFibGUpOwogICAgICAgICAgICBuZXcgTG9vcCh0aGlzKS5leGVjdXRlKHJ1bm5hYmxlKTsKICAgICAgICB9CiAgICB9CgogICAgaW50ZXJmYWNlIExvb3BGcm9tU2V0QnVpbGRlciB7CiAgICAgICAgTG9vcEFsbFNldEJ1aWxkZXIgdG8oaW50IHRvKTsKICAgIH0KCiAgICBpbnRlcmZhY2UgTG9vcFRvU2V0QnVpbGRlciB7CiAgICAgICAgTG9vcEFsbFNldEJ1aWxkZXIgZnJvbShpbnQgZnJvbSk7CiAgICB9CgogICAgaW50ZXJmYWNlIExvb3BBbGxTZXRCdWlsZGVyIHsKICAgICAgICB2b2lkIGV4ZWN1dGUoUnVubmFibGUgcnVubmFibGUpOwogICAgfQp9