What is one reason the Americans won the Mexican-American war? Please help!!!

A. they had support from European countries.
B. They had a much larger army
C. They had better military leadership
D. They had control of the lands to the north and to the south of the fighting