#include <stdint.h>
#include <stdbool.h>
#define SPIRAL_MAP_CAP 64
#define SPIRAL_LOOP_CAP 16777216
static int32_t spiral_map_key[SPIRAL_MAP_CAP];
static int32_t spiral_map_val[SPIRAL_MAP_CAP];
static int32_t spiral_map_used[SPIRAL_MAP_CAP];
static int32_t spiral_map_lookup(int32_t key) {
    int32_t i;
    for (i = 0; i < SPIRAL_MAP_CAP; i++) {
        if (spiral_map_used[i] && spiral_map_key[i] == key) return spiral_map_val[i];
    }
    return 0;
}
static int32_t spiral_map_update(int32_t key, int32_t val) {
    int32_t i;
    int32_t free_slot = -1;
    for (i = 0; i < SPIRAL_MAP_CAP; i++) {
        if (spiral_map_used[i] && spiral_map_key[i] == key) { spiral_map_val[i] = val; return 0; }
        if (!spiral_map_used[i] && free_slot < 0) free_slot = i;
    }
    if (free_slot < 0) return 1;
    spiral_map_used[free_slot] = 1;
    spiral_map_key[free_slot] = key;
    spiral_map_val[free_slot] = val;
    return 0;
}
static bool sp_method0(int32_t p0) {
    int32_t v0 = p0;
    bool v1 = false;
    v1 = (v0 < 63);
    return v1;
}
static bool sp_method1(int32_t p0) {
    int32_t v0 = p0;
    bool v1 = false;
    v1 = (v0 < 63);
    return v1;
}
static int32_t spiral_main(void) {
    int32_t v0 = 0;
    v0 = 0;
    int32_t v1 = 0;
    v1 = 1;
    int32_t v2 = 0;
    v2 = spiral_map_update(-1, -5);
    int32_t v3 = 0;
    v3 = (v0 + v2);
    v0 = v3;
    int32_t v4 = 0;
    v4 = spiral_map_lookup(-1);
    int32_t v5 = 0;
    v5 = (v4 - -5);
    int32_t v6 = 0;
    v6 = (v0 + v5);
    v0 = v6;
    int32_t v7 = 0;
    v7 = spiral_map_update(0, 0);
    int32_t v8 = 0;
    v8 = (v0 + v7);
    v0 = v8;
    int32_t v9 = 0;
    v9 = spiral_map_lookup(0);
    int32_t v10 = 0;
    v10 = (v0 + v9);
    v0 = v10;
    for (int32_t spiral_trip = 0; spiral_trip < SPIRAL_LOOP_CAP; spiral_trip++) {
        if (!(sp_method0(v1))) break;
        int32_t v12 = 0;
        v12 = (v1 + 1);
        int32_t v13 = 0;
        v13 = spiral_map_update(v1, v12);
        int32_t v14 = 0;
        v14 = (v0 + v13);
        v0 = v14;
        v1 = v12;
    }
    int32_t v15 = 0;
    v15 = spiral_map_update(63, 1);
    int32_t v16 = 0;
    v16 = (v15 - 1);
    int32_t v17 = 0;
    v17 = (v0 + v16);
    v0 = v17;
    int32_t v18 = 0;
    v18 = spiral_map_lookup(63);
    int32_t v19 = 0;
    v19 = (v0 + v18);
    v0 = v19;
    int32_t v20 = 0;
    v20 = spiral_map_update(-1, 8);
    int32_t v21 = 0;
    v21 = (v0 + v20);
    v0 = v21;
    int32_t v22 = 0;
    v22 = spiral_map_lookup(-1);
    int32_t v23 = 0;
    v23 = (v22 - 8);
    int32_t v24 = 0;
    v24 = (v0 + v23);
    v0 = v24;
    int32_t v25 = 0;
    v25 = spiral_map_update(0, 4);
    int32_t v26 = 0;
    v26 = (v0 + v25);
    v0 = v26;
    int32_t v27 = 0;
    v27 = spiral_map_lookup(0);
    int32_t v28 = 0;
    v28 = (v27 - 4);
    int32_t v29 = 0;
    v29 = (v0 + v28);
    v0 = v29;
    int32_t v30 = 0;
    v30 = spiral_map_update(100, 1);
    int32_t v31 = 0;
    v31 = (v30 - 1);
    int32_t v32 = 0;
    v32 = (v0 + v31);
    v0 = v32;
    int32_t v33 = 0;
    v33 = 1;
    v1 = v33;
    for (int32_t spiral_trip = 0; spiral_trip < SPIRAL_LOOP_CAP; spiral_trip++) {
        if (!(sp_method1(v1))) break;
        int32_t v35 = 0;
        v35 = (v1 + 1);
        int32_t v36 = 0;
        v36 = spiral_map_lookup(v1);
        int32_t v37 = 0;
        v37 = (v36 - v35);
        int32_t v38 = 0;
        v38 = (v0 + v37);
        v0 = v38;
        v1 = v35;
    }
    return v0;
}
int main(void) {
    return spiral_main();
}
