// Resenje 1: Mirko Spasic
#include <iostream>
#include <vector>
using namespace std;

template <class tVrednost>
class Matrica3D
{
    public:
        Matrica3D(int i, int j, int k)
        {
            _Elementi.resize(i);
            for (int m=0;m<i;m++)
                _Elementi[m].resize(j);
            for (int m=0;m<i;m++)
                for (int n=0;n<j;n++)
                    (*this)[m][n].resize(k);
        }
        Matrica3D(int i, int j, int k, tVrednost t)
        {
            _Elementi.resize(i);
            for (int m=0;m<i;m++)
                _Elementi[m].resize(j);
            for (int m=0;m<i;m++)
                for (int n=0;n<j;n++)
                    (*this)[m][n].resize(k);
            for(int p=0;p<i;p++)
                for(int q=0;q<j;q++)
                    for(int r=0;r<k;r++)
                        (*this)[p][q][r]=t;
        }
        vector< vector<tVrednost> >& operator [] (int i)
        {
            return _Elementi[i];
        }
        const vector< vector<tVrednost> >& operator [] (int i) const
        {
            return _Elementi[i];
        }
        int Visina()
        {
            return _Elementi.size();
        }
        int Sirina()
        {
            return _Elementi.size() ? _Elementi[0].size() : 0;
        }
        int Duzina()
        {
            return _Elementi.size() ? (_Elementi[0].size() ? _Elementi[0][0].size() : 0) : 0;
        }
    private:
        vector< vector < vector< tVrednost> > > _Elementi;
};

main()
{
    Matrica3D<int> m(2,4,6,1);
    for(int p=0;p<m.Visina();p++)
    {
        for(int q=0;q<m.Sirina();q++)
        {
            for(int r=0;r<m.Duzina();r++)
                cout<<m[p][q][r]<<' ';
            cout<<endl;
        }
    cout<<endl<<endl;
    }
    return 0;
}
