If you can't do 2 then do then find a group that offers #1 for people who are in a bad situation. If there is no group to help you then keep focusing on #2 as that is a priority. You can't help others if you can't help yourself. When you find yourself in that situation then the best thing is to find those who can help you, because now you are that person who would benefit from someone doing something for free out of the kindness of their hearts.
If you are homeless then focus on financial improvement while seeking help from groups who assist the homeless out of the kindness of their hearts.
If I also go back to Taiwan, open a CMA school next to his school and teach for free, will he be able to get any students?
At that point it doesn't matter if you teach for free or if you teach for money. At that point you become his competition. Even if you teach for money and not for free, if your school is better your long fist brother will lose money. This is how walmart put many small shops out of business.
You are missing my point with this. You don't teach everyone for free. You just teach those who are not able to afford the class and only if the person has the right passion to learn what you teach. People understand that paying helps to keep a school open. People also understand if you help someone for free. Sometimes your best student will be the one who can least afford it.
If you look at professional sports you will discover that many of the people who are the best athlete's are the ones who can least afford it. If you look at professional careers many of those who had very little or nothing are also some of the most successful people in the world. They are also the same people who give back to the communities when they are rich.
The people who most appreciate "free" and "help" are often those who need it the most. When you don't need it then it's only an option so it doesn't mean much to you. This is why you don't teach everyone for free. You just teach the ones who need it the most.
Not every great leader starts his life being great. Not every rich person starts their life being rich. The world is full of these examples.
Money is not everything. Without money, you can't do anything.
This is why I say you must help yourself before you can help others. You cannot help others cross a lake unless you have a boat. You cannot have a boat unless you have money.
If you do too many things for free, then you will have no boat. Not everyone needs nor wants free. Some people want to pay money to show appreciation. When you find people like that then allow them to pay.
This is always a factor
A salesperson at the old guy's school would counter this with "you get what you pay for."
This is also true and happens often. I've even said as much myself. When doing designing websites. I warn people about "free website design" and "expensive website design".
The free website design gets the "you get what you pay for" speech
The expensive website design gets the "Perceived value" speech. Don't pay more for something that is the same thing at a lower price.