// StrAlgoDemo.cpp

#include <iostream>
#include <string>
#include <utility>

using namespace std;

string trim_right(const string& s, const string& t = " ")
{
	string source = s;
	return source.erase(source.find_last_not_of(t) + 1) ;
}

string trim_left(const string& s, const string& t = " ")
{
	string source = s;
	return source.erase(0, source.find_first_not_of(t)) ;
}

pair<string, string> split_name(const string& full_name)
{
	string s = trim_left(trim_right(full_name));
	string::size_type n = s.find_last_of(" ");
	if (n == string::npos)
		return make_pair("", s);

	return make_pair(s.substr(0,n), s.substr(n+1,s.size()));
}

void doit(const string& name )
{
	pair<string, string> names;

	names = split_name(name);
	cout << "\"" << names.second;
	if (names.first.size() > 0)
		cout << ", " << names.first;

	cout << "\"" << endl;
}

int main()
{
	doit("Francielli Gomes");
	doit("Josué Andrade Gomes");
	doit("João Victor Andrade Gomes");
	doit("Francisco Andrade Gomes");
}