#include <iostream>
using namespace std;
template <class T>
class Array{
public:
Array() : size(0){ cout << "Array contructed, length = " << length() << endl; }
Array(int s) : size(s) { data = new T[size]; }
Array(const Array & a) : size(a.length()) {
data = new T[a.length()];
for(int i = 0; i < a.length(); ++i)
data[i] = a[i];
}
int length() const { return size; }
// Members
private:
int size;
T * data;
};
int main()
{
Array< Array<int> > b(3);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCnRlbXBsYXRlIDxjbGFzcyBUPgpjbGFzcyBBcnJheXsKICAgIHB1YmxpYzoKICAgIEFycmF5KCkgOiBzaXplKDApeyBjb3V0IDw8ICJBcnJheSBjb250cnVjdGVkLCBsZW5ndGggPSAiIDw8IGxlbmd0aCgpIDw8IGVuZGw7IH0KIAogICAgQXJyYXkoaW50IHMpIDogc2l6ZShzKSB7IGRhdGEgPSBuZXcgVFtzaXplXTsgfQogCiAgICBBcnJheShjb25zdCBBcnJheSAmIGEpIDogc2l6ZShhLmxlbmd0aCgpKSB7IAogICAgICAgZGF0YSA9IG5ldyBUW2EubGVuZ3RoKCldOwogICAgICAgZm9yKGludCBpID0gMDsgaSA8IGEubGVuZ3RoKCk7ICsraSkKICAgICAgIGRhdGFbaV0gPSBhW2ldOwogICAgfQogCiAgICBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gc2l6ZTsgfQogCiAgICAvLyBNZW1iZXJzCiAKICAgIHByaXZhdGU6CiAgICBpbnQgc2l6ZTsKICAgIFQgKiBkYXRhOwp9OwogCmludCBtYWluKCkKewogICAgQXJyYXk8IEFycmF5PGludD4gPiBiKDMpOwp9