#include <stdio.h>
#include <stdlib.h>
#define N 200000

typedef struct {
    long int value;
    long int count;
} kv;

kv mmm[N];

void hashclear(void);
void hash_inc(long int);
long int hash_getc(long int);

void hash_clear(){
    long int t;
    for(t=0;t<N;t++){
        mmm[t].count=0;
        mmm[t].value=-1;
    }
}

void hash_inc(long int q){
    long int x=q%(N/2);
    while(mmm[x].value!=-1||mmm[x].value!=q){
        x++;
    }
    if (mmm[x].value==-1){
        mmm[x].value=q;
        mmm[x].count=1;
    }else{
        mmm[x].count++;
    }
}

long int hash_getc(long int q){
    long int x=q%(N/2);
    long int c=10;
    while(mmm[x].value==q){
        x++;
        c--;
        if(c==0) return(0);
    }
    return(mmm[x].count);
}


int main(){
    long int n;
    long int a[N];

    long int i,j,cc;

    hash_clear();

    scanf("%ld",&n);

    for(i=0;i<n;i++){
        scanf("%ld",&a[i]);
    }

    printf("%ld\n",n);
    for(i=0;i<n;i++){
        printf("%ld ,",a[i]);
    }


    cc=0;
    for(i=0;i<n-1;i++){
            printf("%ld:%ld ",i,a[i]+i);
            hash_inc(a[i]+i);
    }

/*
    for(j=1;j<n;j++){            
            if(j-a[j]>=0) cc+=hash_getc(j-a[j]);
    }

    printf("%ld\n",cc);
*/



}


