#include<stdio.h>
#include<stdlib.h>

int N;
int val;

struct ListNode
{
    int data;
    
    struct list_node *next;  
};

typedef struct ListNode set;

set *creat_list_node(int c_data)//创建链表结点
{
    set *new_node=NULL;
    new_node=(set*)malloc(sizeof(set));
    memset(new_node,0,sizeof(set));
    
    new_node->data=c_data;
    new_node->next=NULL;
    
    return new_node;
}



set *tail_node(set *Headnode, int t_data)//尾插函数
    {
        set *new_node=creat_list_node(t_data);//将要插入的内容
        set *insert_node=Headnode;//确定头结点位置
        while(insert_node->next!=NULL)//判断是否为表尾
        {
            insert_node=insert_node->next;//如果不是,指向下一个。
        }
            insert_node->next=new_node;//新结点的内容写入末尾结点的下一个。
     
        return insert_node; //返回新插入表中的值
}


set *sum_node(set *HeadNode ,int s_data)
{
    set *clemnt_node=HeadNode;//头结点
    int sum=0;
    for(int i=0;i<=N;i++)//结点从第一个开始。
    {
        sum=sum+clemnt_node->data;//累加
        clemnt_node=clemnt_node->next;//指针指向下一个结点,取下一个结点里的内容
        } 
    
    return sum;
    
}




int main()
{
    set *Headnode=creat_list_node(N);//确定头结点位置
    while(scanf("%d\n",&N)!=EOF)
    {
       for(int i=0;i<N;i++)//尾插获取完整链表
       {
         scanf("%d ",&val);
        tail_node(Headnode, val);
       }
    printf("%d\n",sum_node(Headnode,val));//求和
    }
       
}