Discrete Mathematics With Computer Science Applications