I'm not 100% sure, to be quite honest.
I can tell you that my niece, who works in immigration from the Mexican side, says it takes 4-7 years and typically as much as $20,000.