https://ideone.com/embed/cID6MP