import java.util.*; import java.io.*; import java.math.*; class Main{ static void solve(){ int n = ni(); long [] A = new long[n]; long [][] dp = new long[n+1][2]; for(long [] v : dp) Arrays.fill(v,(long)-1e18); for(int i = 0 ; i < n ; i ++ ) { A[i] = nl(); } dp[0][0] = A[0]; dp[0][1] = A[0]; long ans1 = 0; long ans2 = 0; for(int i = 0 ; i < n-1 ; i ++ ) { // l -> dp[i+1][0] = Math.max(dp[i][0],dp[i+1][0]); dp[i+1][1] = Math.max(dp[i+1][1],(long)Math.abs(A[i+1])); // --> r dp[i+1][0] = Math.max(dp[i+1][0],(long)Math.abs(A[i+1])); dp[i+1][1] = Math.max(dp[i][1],dp[i+1][1]); } for(int i = 0; i < n ; i ++ ) { ans1 += dp[i][0]; ans2 += dp[i][1]; } output.println((long)Math.max(ans1,ans2)); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - // static int ni(){ return Integer.parseInt(sc.next()); } static long nl(){ return Long.parseLong(sc.next()); } static double nd(){ return Double.parseDouble(sc.next()); } static String ns(){ return sc.next(); } static BigInteger bi(){ return sc.nextBigInteger(); } static BigDecimal bd(){ return sc.nextBigDecimal(); } static PrintWriter output; static Scanner sc ; public static void main(String[] args){ output = new PrintWriter(System.out); sc = new Scanner(System.in); solve(); output.flush(); } }