output_description: Print the minimum total amount of MP required to turn every digit on the wall
  into 1 in the end.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      H W
      c_{0,0} ... c_{0,9}
      :
      c_{9,0} ... c_{9,9}
      A_{1,1} ... A_{1,W}
      :
      A_{H,1} ... A_{H,W}
attempt: #include <bits/stdc++.h>
  typedef long long ll;
  #define MOD 1000000007
   
  using namespace std;
  
  
  int main(){
      int H,W;
      cin >> H >> W;
      int c[10][10];
      int cnt[10] = {0};
      int a;
      for (int i = 0; i < 10; i++)
      {
          for (int j = 0; j < 10; j++)
          {
              cin >> c[i][j];
          }
      }
      for (int i = 0; i < H; i++)
      {
          for (int j = 0; j < W; j++)
          {
              cin >> a;
              if(a!=-1) cnt[a]++;
          }
          
      }
      
      for (int k = 0; k < 10; k++)
      {
          for (int i = 0; i < 10; i++)
          {
              for (int j = 0; j < 10; j++)
              {
                  c[i][j] = min(c[i][j],c[i][k]+c[k][j]);
              }
          }
      }
      int ans = 0;
      for (int i = 0; i < 10; i++)
      {
          ans += cnt[i]*c[i][1];
      }
      cout << ans << endl;
      return 0;
  }
problem_description: Statement
  
  Joisino the magical girl has decided to turn every single digit that exists on
  this world into 1.
  
  Rewriting a digit i with j (0≤i,j≤9) costs c_{i,j} MP (Magic Points).
  
  She is now standing before a wall. The wall is divided into HW squares in H
  rows and W columns, and at least one square contains a digit between 0 and 9
  (inclusive).
  
  You are given A_{i,j} that describes the square at the i-th row from the top
  and j-th column from the left, as follows:
  
    * If A_{i,j}≠-1, the square contains a digit A_{i,j}.
    * If A_{i,j}=-1, the square does not contain a digit.
  
  Find the minimum total amount of MP required to turn every digit on this wall
  into 1 in the end.
samples: [{"input": "2 4\n    0 9 9 9 9 9 9 9 9 9\n    9 0 9 9 9 9 9 9 9 9\n    9 9 0 9 9 9 9 9 9 9\n    9 9 9 0 9 9 9 9 9 9\n    9 9 9 9 0 9 9 9 9 2\n    9 9 9 9 9 0 9 9 9 9\n    9 9 9 9 9 9 0 9 9 9\n    9 9 9 9 9 9 9 0 9 9\n    9 9 9 9 2 9 9 9 0 9\n    9 2 9 9 9 9 9 9 9 0\n    -1 -1 -1 -1\n    8 1 1 8", "output": "12\n    \n\nTo turn a single 8 into 1, it is optimal to first turn 8 into 4, then turn 4\ninto 9, and finally turn 9 into 1, costing 6 MP.\n\nThe wall contains two 8s, so the minimum total MP required is 6\u00d72=12.\n\n* * *"}, {"input": "5 5\n    0 999 999 999 999 999 999 999 999 999\n    999 0 999 999 999 999 999 999 999 999\n    999 999 0 999 999 999 999 999 999 999\n    999 999 999 0 999 999 999 999 999 999\n    999 999 999 999 0 999 999 999 999 999\n    999 999 999 999 999 0 999 999 999 999\n    999 999 999 999 999 999 0 999 999 999\n    999 999 999 999 999 999 999 0 999 999\n    999 999 999 999 999 999 999 999 0 999\n    999 999 999 999 999 999 999 999 999 0\n    1 1 1 1 1\n    1 1 1 1 1\n    1 1 1 1 1\n    1 1 1 1 1\n    1 1 1 1 1", "output": "0\n    \n\nNote that she may not need to change any digit.\n\n* * *"}, {"input": "3 5\n    0 4 3 6 2 7 2 5 3 3\n    4 0 5 3 7 5 3 7 2 7\n    5 7 0 7 2 9 3 2 9 1\n    3 6 2 0 2 4 6 4 2 3\n    3 5 7 4 0 6 9 7 6 7\n    9 8 5 2 2 0 4 7 6 5\n    5 4 6 3 2 3 0 5 4 3\n    3 6 2 3 4 2 4 0 8 9\n    4 6 5 4 3 5 3 2 0 8\n    2 1 3 4 5 7 8 6 4 0\n    3 5 2 6 1\n    2 5 3 2 1\n    6 9 2 5 6", "output": "47"}]