#include <vector>
using namespace std;
template<class ntype, class etype>
class node {
class edge {
etype payload;
node<ntype, etype>* to;
node<ntype, etype>* from;
};
ntype payload;
vector< edge > incoming; // How to avoid recursion ???
vector< edge > outgoing; // ????
};
template<class ntype, class etype>
class graph {
vector< node<ntype, etype> > nodes;
};
int main() {
graph<int, int> g;
return 0;
}
I2luY2x1ZGUgPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPGNsYXNzIG50eXBlLCBjbGFzcyBldHlwZT4KY2xhc3Mgbm9kZSB7CgogICAgY2xhc3MgZWRnZSB7CiAgICBldHlwZSBwYXlsb2FkOwogICAgICAgIG5vZGU8bnR5cGUsIGV0eXBlPiogdG87CiAgICAgICAgbm9kZTxudHlwZSwgZXR5cGU+KiBmcm9tOwogICAgfTsKCiAgICBudHlwZSBwYXlsb2FkOwogICAgdmVjdG9yPCBlZGdlID4gaW5jb21pbmc7IC8vIEhvdyB0byBhdm9pZCByZWN1cnNpb24gPz8/CiAgICB2ZWN0b3I8IGVkZ2UgPiBvdXRnb2luZzsgLy8gPz8/Pwp9OwoKdGVtcGxhdGU8Y2xhc3MgbnR5cGUsIGNsYXNzIGV0eXBlPgpjbGFzcyBncmFwaCB7CgogICAgdmVjdG9yPCBub2RlPG50eXBlLCBldHlwZT4gPiBub2RlczsKfTsKCmludCBtYWluKCkgewoJZ3JhcGg8aW50LCBpbnQ+IGc7CglyZXR1cm4gMDsKfQ==