class ListElementShallow implements Cloneable
{
	ListElementShallow next;
	int i;
	
	ListElementShallow(int i)
	{
		this.i = i;
  }
	
	public ListElementShallow clone()
	{
	  ListElementShallow clone = new ListElementShallow(i);
          clone.next = next;
  	  return clone;
	}
	
  public static void main(String args[]) throws Exception
  {
	System.out.println("\ncreate myList");
  	ListElementShallow myList = new ListElementShallow (1);
  	myList.next               = new ListElementShallow (2);
  	myList.next.next          = new ListElementShallow (3);
  	myList.next.next.next     = new ListElementShallow (4);
  	
  	System.out.println("\nprint myList");
  	printList(myList);
  	
  	System.out.println("\nclone myList...");
  	ListElementShallow myList_clone = myList.clone();
  	
  	
  	System.out.println("\nmodify myList...");
  	myList.i=10;
  	myList.next.i=20;
  	myList.next.next.i=30;
  	myList.next.next.next.i=40;
  	
  	System.out.println("\nprint myList");
  	printList(myList);
  	
  	System.out.println("\nprint myList_clone:");
  	printList(myList_clone);
	}
	
	public static void printList(ListElementShallow e)
	{
		ListElementShallow l = e;
		if (l != null) System.out.print(l.i);
		l = l.next;
		
		while (l != null)
		{
			System.out.print(" -> ");
			System.out.print(l.i);
			l = l.next;
	  }
	  
	  System.out.println();		  
  }
}