Adaptive Thinking