class Vehicle {
  int position;
  void move(int x) {
    System.out.println("Vehicle::move");
    position = position + x;
  }
}

class Car extends Vehicle {
  int passengers;
  void await(Vehicle v) {
    System.out.println("Car::await");
    if (v.position < position)
      v.move(position - v.position);
    else
      this.move(10);
  }
}

class Truck extends Vehicle {
  void move(int x) {
    System.out.println("Truck::move");
    if (x <= 55) { position = position + x; }
  }
}

public class Driver {
  public static void main(String args[]) {
    Truck t = new Truck();
    Car c = new Car();
    Vehicle v = c;
    c.passengers = 2;
    c.move(60);
    v.move(70);
    c.await(t);
  }
}
