import java.util.*;
class Ideone {
public static class Sprite {
public static ArrayList<Sprite> sprites = null;
public int age = 0;
private boolean removed = false;
public Sprite() {
sprites.add(this);
}
public boolean render() {
if (removed)
return false;
age++;
if (age > 30)
dispose();
return true;
}
public void dispose() {
removed = true;
}
}
private static ArrayList<Sprite> sprites = new ArrayList<Sprite>();
public static void main
(String[] args
) { Sprite.sprites = sprites;
new Sprite();
new Sprite();
for (int i = 0; i < 60; i++)
render();
}
public static void render() {
Iterator<Sprite> iterator = sprites.iterator();
while (iterator.hasNext())
if (!iterator.next().render())
iterator.remove();
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgSWRlb25lIHsKICAgIAogICAgcHVibGljIHN0YXRpYyBjbGFzcyBTcHJpdGUgewogICAgICAgIHB1YmxpYyBzdGF0aWMgQXJyYXlMaXN0PFNwcml0ZT4gc3ByaXRlcyA9IG51bGw7CiAgICAgICAgcHVibGljIGludCBhZ2UgPSAwOwogICAgICAgIAogICAgICAgIHByaXZhdGUgYm9vbGVhbiByZW1vdmVkID0gZmFsc2U7CiAgICAgICAgCiAgICAgICAgcHVibGljIFNwcml0ZSgpIHsKICAgICAgICAgICAgc3ByaXRlcy5hZGQodGhpcyk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHB1YmxpYyBib29sZWFuIHJlbmRlcigpIHsKICAgICAgICAJaWYgKHJlbW92ZWQpCiAgICAgICAgCSAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIGFnZSsrOwogICAgICAgICAgICBpZiAoYWdlID4gMzApCiAgICAgICAgICAgICAgICBkaXNwb3NlKCk7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBwdWJsaWMgdm9pZCBkaXNwb3NlKCkgewogICAgICAgICAgICByZW1vdmVkID0gdHJ1ZTsKICAgICAgICB9CiAgICB9CiAgICAKICAgIHByaXZhdGUgc3RhdGljIEFycmF5TGlzdDxTcHJpdGU+IHNwcml0ZXMgPSBuZXcgQXJyYXlMaXN0PFNwcml0ZT4oKTsKCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgU3ByaXRlLnNwcml0ZXMgPSBzcHJpdGVzOwogICAgICAgIAogICAgICAgIG5ldyBTcHJpdGUoKTsKICAgICAgICBuZXcgU3ByaXRlKCk7CiAgICAgICAgCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA2MDsgaSsrKQogICAgICAgICAgICByZW5kZXIoKTsKICAgICAgICAKICAgIH0KICAgIAogICAgcHVibGljIHN0YXRpYyB2b2lkIHJlbmRlcigpIHsKICAgICAgICBJdGVyYXRvcjxTcHJpdGU+IGl0ZXJhdG9yID0gc3ByaXRlcy5pdGVyYXRvcigpOwogICAgICAgIHdoaWxlIChpdGVyYXRvci5oYXNOZXh0KCkpCiAgICAgICAgICAgIGlmICghaXRlcmF0b3IubmV4dCgpLnJlbmRlcigpKQogICAgICAgICAgICAgICAgaXRlcmF0b3IucmVtb3ZlKCk7CiAgICB9Cn0K