/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.concurrent.atomic.AtomicInteger;
abstract class Ticket {
private static final AtomicInteger ticketCounter = new AtomicInteger();
private final int ticketId;
public Ticket() {
this.ticketId = ticketCounter.incrementAndGet();
}
public int getTicketId() {
return ticketId;
}
}
class Ticket1 extends Ticket {}
class Ticket2 extends Ticket {}
class Ticket3 extends Ticket {}
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Ticket1 t1 = new Ticket1();
Ticket3 t3 = new Ticket3();
Ticket2 t2 = new Ticket2();
Ticket1 t4 = new Ticket1();
System.
out.
println("t1:"+t1.
getTicketId()); System.
out.
println("t2:"+t2.
getTicketId()); System.
out.
println("t3:"+t3.
getTicketId()); System.
out.
println("t4:"+t4.
getTicketId()); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS51dGlsLmNvbmN1cnJlbnQuYXRvbWljLkF0b21pY0ludGVnZXI7CgphYnN0cmFjdCBjbGFzcyBUaWNrZXQgewogICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXRvbWljSW50ZWdlciB0aWNrZXRDb3VudGVyID0gbmV3IEF0b21pY0ludGVnZXIoKTsKICAgIHByaXZhdGUgZmluYWwgaW50IHRpY2tldElkOwogICAgCiAgICBwdWJsaWMgVGlja2V0KCkgewogICAgICAgdGhpcy50aWNrZXRJZCA9IHRpY2tldENvdW50ZXIuaW5jcmVtZW50QW5kR2V0KCk7CiAgICB9CgogICAgcHVibGljIGludCBnZXRUaWNrZXRJZCgpIHsKICAgICAgICByZXR1cm4gdGlja2V0SWQ7CiAgICB9Cn0KCmNsYXNzIFRpY2tldDEgZXh0ZW5kcyBUaWNrZXQge30KY2xhc3MgVGlja2V0MiBleHRlbmRzIFRpY2tldCB7fQpjbGFzcyBUaWNrZXQzIGV4dGVuZHMgVGlja2V0IHt9CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVRpY2tldDEgdDEgPSBuZXcgVGlja2V0MSgpOwoJCVRpY2tldDMgdDMgPSBuZXcgVGlja2V0MygpOwoJCVRpY2tldDIgdDIgPSBuZXcgVGlja2V0MigpOwogICAgICAgIFRpY2tldDEgdDQgPSBuZXcgVGlja2V0MSgpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigidDE6Iit0MS5nZXRUaWNrZXRJZCgpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInQyOiIrdDIuZ2V0VGlja2V0SWQoKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ0MzoiK3QzLmdldFRpY2tldElkKCkpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigidDQ6Iit0NC5nZXRUaWNrZXRJZCgpKTsKCX0KfQ==