Write a program in java to simulate routing using flooding. Each packet should contain a counter that is decremented on each hop. When the counter gets to 0, the packet is discarded. Time is discrete, with each line handling one packet per line interval. Make three versions of the program: All lines are flooded, all lines except the input lines are flooded, and only the statically chosen best k lines are flooded.