Version 1, same as vector, now I will improve it.
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss