 
     cout << "Usage: DestinCuda CodeWord MAXCNT LayerToShow ParamsFile TrainingDataFile DestinOutputFile TargetDirectory [OutputDistillationLevel]" << endl;
     cout << "Where:" << endl;
-    cout << "    CodeWord is an 11-digit value of the form." << endl;
+    cout << "    CodeWord is greater than 1000 but must have 11 digits RRRR XX YYYYY" << endl;
+    cout << "        RRRR >= 0000 to 9999 where 0000 is real random time" << endl;
+    cout << "        XX    = 01 to 10 number of classes" << endl;
+    cout << "        YYYYY = 00000 to 99999 number of examples of each class." << endl;
+    cout << "                00000 means RANDOMLY PICK EXAMPLES until we finish clustering, period, up to max iterations." << endl;
     cout << "        RRRRXXYYYYY where RRRR is reserved, XX is number of classes, YYYYY is number of examples" << endl;
     cout << "    MAXCNT is the number of digits we show it to train the unsupervised DeSTIN architecture" << endl;
     cout << "    LayerToShow = layer written to output file; it is given as S:E:O:P:T where " << endl;

    }
    // end of data loading

    return 0;
}


    OutputTypes eTypeOfOutput = eBeliefs;

    string sLayerSpecs = argv[3];
    int iColon = sLayerSpecs.find(":");
    if ( iColon == -1 || sLayerSpecs.substr(iColon).empty() )  //first layer = last layer, and no sampling specified.
    {
        // S
        FirstLayerToShowHECK=atoi(sLayerSpecs.c_str());
        LastLayerToShow=FirstLayerToShowHECK;
    }
    else
    {
        // S:E
        FirstLayerToShowHECK=atoi(sLayerSpecs.substr(0,1).c_str());
        LastLayerToShow=atoi(sLayerSpecs.substr(iColon+1,1).c_str());
        sLayerSpecs = sLayerSpecs.substr(iColon+1);
        iColon = sLayerSpecs.find(":");
        if ( iColon!=-1 || !( sLayerSpecs.substr(iColon).empty() ) )
        {
            //S:E:O
            sLayerSpecs = sLayerSpecs.substr(iColon+1);
            iMovementOutputOffset = atoi(sLayerSpecs.substr(0,1).c_str());
            iColon = sLayerSpecs.find(":");
            if ( iColon!=-1 || !( sLayerSpecs.substr(iColon).empty() ) )
            {
                //S:E:O:P
                sLayerSpecs = sLayerSpecs.substr(iColon+1);
                iMovementOutputPeriod = atoi(sLayerSpecs.substr(0,1).c_str());
                iColon = sLayerSpecs.find(":");
                if ( iColon!=-1 || !( sLayerSpecs.substr(iColon).empty() ) )
                {
                    //S:E:O:P:T
                    sLayerSpecs = sLayerSpecs.substr(iColon+1);
                    if ( sLayerSpecs.substr(0,1)=="A" )
                    {
                        eTypeOfOutput = eBeliefInAdviceTabular;
                    }
                    else if ( sLayerSpecs.substr(0,1)=="B" )
                    {
                        eTypeOfOutput = eBeliefs;
                    }
                    else if ( sLayerSpecs.substr(0,1)=="N" )
                    {
                        eTypeOfOutput = eBeliefInAdviceNNFA;
                    }
                    else if ( sLayerSpecs.substr(0,1)=="L" )
                    {
                        eTypeOfOutput = eBeliefInAdviceLinearFA;
                    }
                    else
                    {
                        cout << "Do not understand the output type " << sLayerSpecs.c_str() << endl;
                        return 0;
                    }
                }
            }
        }
    }

    // Argument: TargetDirectory
    // A given location instead or default
