static void Main(string[] args)
        {
            //	setups don't get timed.
            ReadMap();
            LinkMap();
            SetOutput();
            SetShowStatus();

            if (_output == OutputType.Png)
            {
                _gd = new PngData();
                _gd.DrawBase(MapCells);
            }

            var cells = MapCells.ToList();

            _areas = MapCellsToAreas(cells);

            if (_output == OutputType.Png)
            {
                _gd.DrawAreas(_areas);
            }


            Stopwatch sw = new Stopwatch();

            sw.Start();
            var firstPieces = FindInitialAreas();

            ProcessAreas(firstPieces);
            sw.Stop();
            _timeSpan = sw.Elapsed;
            DoOutput();
        }
        static void Main(string[] args)
        {
            //	setups don't get timed.
            ReadMap();
            LinkMap();
            SetOutput();
            SetShowStatus();

            if (_output == OutputType.Png)
            {
                _gd = new PngData();
                _gd.DrawBase(MapCells);
            }

            var cells = MapCells.ToList();
            _areas = MapCellsToAreas(cells);

            if (_output == OutputType.Png)
            {
                _gd.DrawAreas(_areas);
            }

            Stopwatch sw = new Stopwatch();
            sw.Start();
            var firstPieces = FindInitialAreas();
            ProcessAreas(firstPieces);
            sw.Stop();
            _timeSpan = sw.Elapsed;
            DoOutput();
        }