Time Complexity problem