private String map(int depth50m, int depth10m, int depth1m)
            throws NodeMeaningKeyErrorException {
        if (depth50m < min50m || depth50m > max50m) {
            throw new NodeMeaningKeyErrorException();
        }
        if (depth10m < min10m || depth10m > max10m) {
            throw new NodeMeaningKeyErrorException();
        }
        if (depth1m < min1m || depth1m > max1m) {
            throw new NodeMeaningKeyErrorException();
        }
        depth50m -= min50m;
        depth10m -= min10m;
        depth1m -= min1m;
        int depth10mLength = max10m - min10m + 1;
        int depth1mLength = max1m - min1m + 1;
        int value = depth50m * depth10mLength * depth1mLength + depth10m
                * depth1mLength + depth1m;
        return String.valueOf(value);
    }