def water_jug_problem(jug1_capacity, jug2_capacity, target_volume):
jug1_volume = 0
jug2_volume = 0
while jug1_volume != target_volume and jug2_volume != target_volume:
if jug1_volume == 0:
jug1_volume = jug1_capacity
elif jug1_volume > 0 and jug2_volume < jug2_capacity:
transfer_amount = min(jug1_volume, jug2_capacity - jug2_volume)
jug1_volume -= transfer_amount
jug2_volume += transfer_amount
elif jug2_volume == jug2_capacity:
jug2_volume = 0
return jug1_volume, jug2_volume
jug1_capacity = 5
jug2_capacity = 3
target_volume = 4
jug1_final_volume, jug2_final_volume = water_jug_problem(jug1_capacity, jug2_capacity, target_volume)
print(f"Jug 1 final volume: {jug1_final_volume}")
print(f"Jug 2 final volume: {jug2_final_volume}")