Which of the following programming languages will help me better to teach the basic concepts of CS and why?
Of the languages you mention knowing, I'd recommend Python.

Advantages:


You know it.  This naturally applies to the other languages in your list, but there are other languages that would also be candidates if you knew them.  It's certainly possible to learn a language and teach at the same time, but best to avoid it if you can.
It's succinct. You want them writing code, not boilerplate.  It'll be simpler for them to learn to understand code logic if every line is actually doing something meaningful instead of just existing to fulfill syntactic requirements.
It has a REPL environment. The ability to do easy interactive debugging and testing of individual lines quickly will make it easier to try things out early on.
The annoying "whitespace is syntactically significant" thing, while pointless and occasionally counterproductive for experienced programmers (who would already be formatting things correctly) is actually a good thing for beginners who need to be trained in proper indentation.
Simple GUI (and other) Libraries. Anything that lets them see the results of their coding on the screen as quickly as possible will help get their interest.  And GUIs are hardly the only libraries available; chances are anything they want to play with has an associated library out there.  You want to get them writing real (albeit simple) code instead of toy programs, so they can get excited about it.
Support for functional programming. Not the first thing they'll be doing, but an advantage of Python over dedicated teaching languages that were never intended for practical use is that the advanced features are there once the students are ready for them.  They can learn the basic syntax, then start playing with, e.g. list comprehensions, then move on to a fully functional style (when that's the best approach) when they're ready for it.
Free, portable and open source. No need to tie them to a specific platform if you don't have to.  This also makes it easy for them to work on projects at home one whatever hardware they have available.


Disadvantages:


No real low-level facilities. Python won't teach them about memory management, pointers, etc.  They'll need to switch to something that does eventually (I recommend C for that), but that can be the second language.
No variable declarations. This is going to be an annoying source of bugs for beginners as well as experts; if you misspell a variable you're writing to, it'll just assume you're declaring a new variable and silently do just that.  Python could really benefit from something like Perl's use strict.
Poor scope resolution and visibility mechanisms. In, e.g. C, you can have variables that are global, local to the file, local to the function, or local to the block.  Probably in part due to its lack of explicit block delimiters, Python doesn't really have that kind of granularity; everything's either global or local.  And since it doesn't declare its variables, there are positions in the code where a write to a variable will have local scope but a read from the same variable would have global scope.  Python 3 has improved this somewhat  due to the introduction of nonlocal scope.
Python 2 vs Python 3.  Python 3 is the better language, but since it broke backwards compatibility, sometimes you have to choose between Python 3 and a library you want to use.  Less of an issue with beginners than it is in real practice.


I would also strongly anti-recommend PHP and Java; the former was put together in a very hackish manner and will teach them bad habits, and Java is a full-on new BadHabitFactory().createBadHabit().getInstance().getHabitSet() generator.