public override void Print(System.Windows.Forms.DataGridView dgv)
        {
            base.Print(dgv);
            // now first three rows are filled with dictonary data

            dgv.SuspendLayout();

            dgv.ColumnCount = dgv.ColumnCount + 2;

            // we want to print vector at the begining, so shift current rows down
            dgv.Rows.Insert(0, 3);

            // prepare enought room to fit vector in width
            if (dgv.ColumnCount < vector.Length)
            {
                dgv.ColumnCount = vector.Length;
            }

            // Print (up?) vector
            for (int j = 0; j < vector.Length; j++)
            {
                dgv[j, 0].Value = Convert.ToChar(Convert.ToUInt32('A') + j);
                if (vector[j] != 0)
                {
                    dgv[j, 1].Value = vector[j].ToString();
                }
            }

            dgv.Columns.RemoveAt(dgv.ColumnCount - 1);

            dgv.AutoResizeColumns();
            dgv.AutoResizeRows();

            dgv.ResumeLayout(false);

            if (dgv.SelectedCells != null && dgv.SelectedCells.Count > 0)
            {
                dgv.SelectedCells[0].Selected = false;
            }
        }