// java
class Jclosure {
  abstract class Counter { int cnt; abstract String call(int add); }
  Counter getCounter(int cnt) {
    Counter ct = new Counter() { 
           String call(int addcnt) 
           { cnt += addcnt; return "counter : " + cnt; } };
    ct.cnt = cnt;
    return ct;
  }
  void test() {
      Counter c1 = getCounter(0); Counter c2 = getCounter(10);
      for (int i=0; i<5; i++) {
        System.out.println("c1 : " + c1.call(i));
        System.out.println("c2 : " + c2.call(i * 2));
      }
  }
  public static void main(String [] arg) { new Jclosure().test(); }
}