#include <iostream>
#include <cstring>
#include <vector>

#include <stdio.h>
#include <stdlib.h>
using namespace std;


class A {
public:
	int n;
	A(const char* p) { n = (int)strlen(p); };
};
void F(vector<pair<const char*, const A&> > v) {
	printf("F\n");
	for(vector<pair<const char*, const A&> >::iterator it = v.begin();it!=v.end();++it) printf("  '%s': %p %i\n", it->first, &it->second, it->second.n);
};

void G(vector<pair<const char*, const A> > v) {
	printf("G\n");
	for(vector<pair<const char*, const A> >::iterator it = v.begin();it!=v.end();++it) printf("  '%s': %p %i\n", it->first, &it->second, it->second.n);
};

int main(int, char**) {
	F({
		{ "A", "A" },
		{ "B", "BB" },
		{ "C", "CCC" },
		{ "D", "DDDD" }
	});
	
	G({
		{ "A", "A" },
		{ "B", "BB" },
		{ "C", "CCC" },
		{ "D", "DDDD" }
	});
	
	return 0;
};

