Warren Buffett says he has cancer