Discrete Mathematics by John Taylor & Rowan Garnier