int matrix[20000000];
int ad[100000];

int len;

void readarray(void) {
    int cnt;
    cnt = 0;
    while (cnt < len) {
        ad[cnt] = input();
        cnt = cnt + 1;
    }
}

int transpose(int n, int matrix[], int rowsize) {
    int colsize;
    int i;
    int j;
    int curr;
    colsize = n / rowsize;
    i = 0;
    j = 0;
    while (i < colsize) {
        j = 0;
        while (j < rowsize) {
            if (i < j) {
                j = j + 1;
            } else {
                curr = matrix[i * rowsize + j];
                matrix[j * colsize + i] = matrix[i * rowsize + j];
                matrix[i * rowsize + j] = curr;
                j = j + 1;
            }
        }
        i = i + 1;
    }
    return 0 - 1;
}

int main(void) {
    int n;
    int i;
    int ans;
    n = input();
    len = input();
    readarray();
    i = 0;

    while (i < n) {
        matrix[i] = i;
        i = i + 1;
    }
    i = 0;
    while (i < len) {
        transpose(n, matrix, ad[i]);
        i = i + 1;
    }

    ans = 0;
    i = 0;
    while (i < len) {
        ans = ans + i * i * matrix[i];
        i = i + 1;
    }
    if (ans < 0) {
        ans = 0 - ans;
    }
    output(ans);
    return 0;
}