#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

struct sol
    {
  int num[9];  
};

struct sol sols[8];

int abs(int x)
    {
    return x<0?-x:x;
}

int dist(struct sol a, struct sol b)
    {
    int tot=0;
    for(int i=0;i<9;i++)
        {
        tot+=abs(a.num[i] - b.num[i]);
    }
    return tot;
}

int main() {
    sols[0] = {2,9,4,7,5,3,6,1,8};
    sols[1] = {6,7,2,1,5,9,8,3,4};
    sols[2] = {8,1,6,3,5,7,4,9,2};
    sols[3] = {4,3,8,9,5,1,2,7,6};
    sols[4] = {4,9,2,3,5,7,8,1,6};
    sols[5] = {6,1,8,7,5,3,2,9,4};
    sols[6] = {2,7,6,9,5,1,4,3,8};
    sols[7] = {8,3,4,1,5,9,6,7,2};
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */
    struct sol input;
    for(int i=0;i<9;i++)
        {
        scanf(" %d",&(input.num[i]));
    }
    int best = 9999999;
    for(int i=0;i<8;i++)
        {
        int d = dist(input,sols[i]);
        if(d<best)
            {
            best = d;
        }
    }
    printf("%d",best);
    return 0;
}