public class DiningRoom {
  private int count;
  private int waiting;
  public final int MAX = 4;

  DiningRoom() {
    count = 0;
    waiting = 0;
  }

  synchronized void enter() {
    while(count == MAX || waiting > 0) {
      try {
	waiting++;
	wait();
	waiting--;
      } catch(InterruptedException e) {
	System.out.println(e);
      }
    }
    count++;
  }
  
  synchronized void leave() {
    count--;
    notify();
  }

}
