1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.

2622 lines
106 KiB
MiniZinc

% LSFRP Instance Model: data/instances/fm3_3.in
include "globals.mzn";
int: vv;
int: ww;
int: pip;
int: poPorts0;
set of int: POPORTS0 = 0..poPorts0;
var POPORTS0: poAct0;
int: poPorts1;
set of int: POPORTS1 = 0..poPorts1;
var POPORTS1: poAct1;
int: poPorts2;
set of int: POPORTS2 = 0..poPorts2;
var POPORTS2: poAct2;
int: poPorts3;
set of int: POPORTS3 = 0..poPorts3;
var POPORTS3: poAct3;
int: poPorts4;
set of int: POPORTS4 = 0..poPorts4;
var POPORTS4: poAct4;
int: poPorts5;
set of int: POPORTS5 = 0..poPorts5;
var POPORTS5: poAct5;
set of int: VESSELS = 1..vv;
set of int: WEEKS = 1..ww;
set of int: PIPORTS = 1..pip;
set of int: REPOSTYPES = 1..3;
var PIPORTS: piPort;
array[VESSELS] of var WEEKS: piWeek;
array[VESSELS] of var REPOSTYPES: reposType;
int: sosActSize;
int: sosSize;
set of int: SOSACTS = 0..sosActSize;
set of int: SOS = 0..sosSize;
array[VESSELS] of var SOSACTS: sosAct;
array[VESSELS] of var SOS: sos;
%int: seBfixedMax = max([
% max(array1d(1..(seActSize + 1)*(poPorts0 + 1), seBfixedArr0)),
% max(array1d(1..(seActSize + 1)*(poPorts1 + 1), seBfixedArr1)),
% max(array1d(1..(seActSize + 1)*(poPorts2 + 1), seBfixedArr2)),
% max(array1d(1..(seActSize + 1)*(poPorts3 + 1), seBfixedArr3)),
% max(array1d(1..(seActSize + 1)*(poPorts4 + 1), seBfixedArr4)),
% max(array1d(1..(seActSize + 1)*(poPorts5 + 1), seBfixedArr5))
%]);
%int: seDfixedMax = max(array1d(1..vv*(seActSize + 1), seDfixedArr));
%int: seAfixedMax = max(array1d(1..vv*pip*ww*(seActSize + 1), seAfixedArr));
int: sosActBCostMax = max([
max(array1d(1..(sosActSize + 1)*(poPorts0 + 1), sosSailCostBArr0)),
max(array1d(1..(sosActSize + 1)*(poPorts1 + 1), sosSailCostBArr1)),
max(array1d(1..(sosActSize + 1)*(poPorts2 + 1), sosSailCostBArr2)),
max(array1d(1..(sosActSize + 1)*(poPorts3 + 1), sosSailCostBArr3)),
max(array1d(1..(sosActSize + 1)*(poPorts4 + 1), sosSailCostBArr4)),
max(array1d(1..(sosActSize + 1)*(poPorts5 + 1), sosSailCostBArr5))
]);
int: sosActACostMax = max(array1d(1..vv*pip*ww*(sosActSize + 1), sosSailCostAArr));
int: sosActSavingsMax = max(array1d(1..vv*(sosActSize + 1), sosActSavingsArr));
array[VESSELS] of var 0..sosActSavingsMax: sosActSavings;
constraint forall(v in VESSELS)(reposType[v] != 3); % No sail equipment opportunities in this scenario
int: directCostMax = max([
max(array1d(1..ww*pip*(poPorts0 + 1), directCostArr0)),
max(array1d(1..ww*pip*(poPorts1 + 1), directCostArr1)),
max(array1d(1..ww*pip*(poPorts2 + 1), directCostArr2)),
max(array1d(1..ww*pip*(poPorts3 + 1), directCostArr3)),
max(array1d(1..ww*pip*(poPorts4 + 1), directCostArr4)),
max(array1d(1..ww*pip*(poPorts5 + 1), directCostArr5))
]);
array[VESSELS] of var 0..directCostMax: directCost;
% phaseOutInfo[0][0]: PO port ves 0 CNFOC(0) at 128
% phaseOutInfo[0][1]: PO port ves 0 CNFOC(0) at 1304
% phaseOutInfo[0][2]: PO port ves 0 CNNGB(1) at 160
% phaseOutInfo[0][3]: PO port ves 0 CNNGB(1) at 1336
% phaseOutInfo[0][4]: PO port ves 0 CNYTN(2) at 218
% phaseOutInfo[0][5]: PO port ves 0 CNYTN(2) at 1394
% phaseOutInfo[0][6]: PO port ves 0 CNNSA(3) at 244
% phaseOutInfo[0][7]: PO port ves 0 CNNSA(3) at 1420
% phaseOutInfo[0][8]: PO port ves 0 MYTPP(4) at 394
% phaseOutInfo[0][9]: PO port ves 0 MYTPP(4) at 1570
% phaseOutInfo[0][10]: PO port ves 0 ZACPT(5) at 762
% phaseOutInfo[0][11]: PO port ves 0 CGPNR(6) at 937
% phaseOutInfo[0][12]: PO port ves 0 NGTIN(7) at 1088
% phaseOutInfo[0][13]: PO port ves 0 NGONN(8) at 1160
% phaseOutInfo[0][14]: PO port ves 0 CMDLA(9) at 1213
% phaseOutInfo[0][15]: PO port ves 0 ZACPT(5) at 1416
% phaseOutInfo[0][16]: PO port ves 0 MYTPP(4) at 1807
array[POPORTS0] of int: poTimes0 = array1d(POPORTS0, [128,1304,160,1336,218,1394,244,1420,394,1570,762,937,1088,1160,1213,1416,1807]);
constraint reposType[1] = 1 -> directCost[1] = directCostArr0[poAct0, piPort, piWeek[1]] /\ sosAct[1] = 0 /\ sos[1] = 0 /\ sosActSavings[1] = 0 /\ sosActBCost[1] = 0 /\ sosActACost[1] = 0;
constraint directCost[1] >= 0;
% phaseOutInfo[1][0]: PO port ves 1 CNFOC(0) at 296
% phaseOutInfo[1][1]: PO port ves 1 CNFOC(0) at 1472
% phaseOutInfo[1][2]: PO port ves 1 CNNGB(1) at 328
% phaseOutInfo[1][3]: PO port ves 1 CNNGB(1) at 1504
% phaseOutInfo[1][4]: PO port ves 1 CNYTN(2) at 386
% phaseOutInfo[1][5]: PO port ves 1 CNYTN(2) at 1562
% phaseOutInfo[1][6]: PO port ves 1 CNNSA(3) at 412
% phaseOutInfo[1][7]: PO port ves 1 CNNSA(3) at 1588
% phaseOutInfo[1][8]: PO port ves 1 MYTPP(4) at 562
% phaseOutInfo[1][9]: PO port ves 1 MYTPP(4) at 1738
% phaseOutInfo[1][10]: PO port ves 1 ZACPT(5) at 930
% phaseOutInfo[1][11]: PO port ves 1 CGPNR(6) at 1105
% phaseOutInfo[1][12]: PO port ves 1 NGTIN(7) at 1256
% phaseOutInfo[1][13]: PO port ves 1 NGONN(8) at 1328
% phaseOutInfo[1][14]: PO port ves 1 CMDLA(9) at 1381
% phaseOutInfo[1][15]: PO port ves 1 ZACPT(5) at 1584
array[POPORTS1] of int: poTimes1 = array1d(POPORTS1, [296,1472,328,1504,386,1562,412,1588,562,1738,930,1105,1256,1328,1381,1584]);
constraint reposType[2] = 1 -> directCost[2] = directCostArr1[poAct1, piPort, piWeek[2]] /\ sosAct[2] = 0 /\ sos[2] = 0 /\ sosActSavings[2] = 0 /\ sosActBCost[2] = 0 /\ sosActACost[2] = 0;
constraint directCost[2] >= 0;
% phaseOutInfo[2][0]: PO port ves 2 EGSUZ(11) at 41
% phaseOutInfo[2][1]: PO port ves 2 EGSUZ(11) at 1553
% phaseOutInfo[2][2]: PO port ves 2 TRZMK(16) at 132
% phaseOutInfo[2][3]: PO port ves 2 TRZMK(16) at 1644
% phaseOutInfo[2][4]: PO port ves 2 TRAMB(17) at 194
% phaseOutInfo[2][5]: PO port ves 2 TRAMB(17) at 1706
% phaseOutInfo[2][6]: PO port ves 2 TRUSK(18) at 221
% phaseOutInfo[2][7]: PO port ves 2 TRUSK(18) at 1733
% phaseOutInfo[2][8]: PO port ves 2 ROCND(19) at 283
% phaseOutInfo[2][9]: PO port ves 2 ROCND(19) at 1795
% phaseOutInfo[2][10]: PO port ves 2 UAILK(20) at 344
% phaseOutInfo[2][11]: PO port ves 2 UAODS(21) at 421
% phaseOutInfo[2][12]: PO port ves 2 TRUSK(18) at 464
% phaseOutInfo[2][13]: PO port ves 2 EGDAM(22) at 552
% phaseOutInfo[2][14]: PO port ves 2 EGPSD(23) at 579
% phaseOutInfo[2][15]: PO port ves 2 EGSUZ(11) at 593
% phaseOutInfo[2][16]: PO port ves 2 MYPKG(24) at 967
% phaseOutInfo[2][17]: PO port ves 2 MYTPP(4) at 1001
% phaseOutInfo[2][18]: PO port ves 2 CNDLC(25) at 1216
% phaseOutInfo[2][19]: PO port ves 2 CNXGG(26) at 1257
% phaseOutInfo[2][20]: PO port ves 2 KRPUS(27) at 1316
% phaseOutInfo[2][21]: PO port ves 2 CNSHA(10) at 1351
% phaseOutInfo[2][22]: PO port ves 2 CNNGB(1) at 1377
% phaseOutInfo[2][23]: PO port ves 2 TWTPE(28) at 1420
% phaseOutInfo[2][24]: PO port ves 2 CNCWN(29) at 1457
% phaseOutInfo[2][25]: PO port ves 2 CNYTN(2) at 1473
% phaseOutInfo[2][26]: PO port ves 2 MYTPP(4) at 1567
% phaseOutInfo[2][27]: PO port ves 2 MYPKG(24) at 1596
array[POPORTS2] of int: poTimes2 = array1d(POPORTS2, [41,1553,132,1644,194,1706,221,1733,283,1795,344,421,464,552,579,593,967,1001,1216,1257,1316,1351,1377,1420,1457,1473,1567,1596]);
constraint reposType[3] = 1 -> directCost[3] = directCostArr2[poAct2, piPort, piWeek[3]] /\ sosAct[3] = 0 /\ sos[3] = 0 /\ sosActSavings[3] = 0 /\ sosActBCost[3] = 0 /\ sosActACost[3] = 0;
constraint directCost[3] >= 0;
% phaseOutInfo[3][0]: PO port ves 3 EGSUZ(11) at 209
% phaseOutInfo[3][1]: PO port ves 3 EGSUZ(11) at 1721
% phaseOutInfo[3][2]: PO port ves 3 TRZMK(16) at 300
% phaseOutInfo[3][3]: PO port ves 3 TRZMK(16) at 1812
% phaseOutInfo[3][4]: PO port ves 3 TRAMB(17) at 362
% phaseOutInfo[3][5]: PO port ves 3 TRUSK(18) at 389
% phaseOutInfo[3][6]: PO port ves 3 ROCND(19) at 451
% phaseOutInfo[3][7]: PO port ves 3 UAILK(20) at 512
% phaseOutInfo[3][8]: PO port ves 3 UAODS(21) at 589
% phaseOutInfo[3][9]: PO port ves 3 TRUSK(18) at 632
% phaseOutInfo[3][10]: PO port ves 3 EGDAM(22) at 720
% phaseOutInfo[3][11]: PO port ves 3 EGPSD(23) at 747
% phaseOutInfo[3][12]: PO port ves 3 EGSUZ(11) at 761
% phaseOutInfo[3][13]: PO port ves 3 MYPKG(24) at 1135
% phaseOutInfo[3][14]: PO port ves 3 MYTPP(4) at 1169
% phaseOutInfo[3][15]: PO port ves 3 CNDLC(25) at 1384
% phaseOutInfo[3][16]: PO port ves 3 CNXGG(26) at 1425
% phaseOutInfo[3][17]: PO port ves 3 KRPUS(27) at 1484
% phaseOutInfo[3][18]: PO port ves 3 CNSHA(10) at 1519
% phaseOutInfo[3][19]: PO port ves 3 CNNGB(1) at 1545
% phaseOutInfo[3][20]: PO port ves 3 TWTPE(28) at 1588
% phaseOutInfo[3][21]: PO port ves 3 CNCWN(29) at 1625
% phaseOutInfo[3][22]: PO port ves 3 CNYTN(2) at 1641
% phaseOutInfo[3][23]: PO port ves 3 MYTPP(4) at 1735
% phaseOutInfo[3][24]: PO port ves 3 MYPKG(24) at 1764
array[POPORTS3] of int: poTimes3 = array1d(POPORTS3, [209,1721,300,1812,362,389,451,512,589,632,720,747,761,1135,1169,1384,1425,1484,1519,1545,1588,1625,1641,1735,1764]);
constraint reposType[4] = 1 -> directCost[4] = directCostArr3[poAct3, piPort, piWeek[4]] /\ sosAct[4] = 0 /\ sos[4] = 0 /\ sosActSavings[4] = 0 /\ sosActBCost[4] = 0 /\ sosActACost[4] = 0;
constraint directCost[4] >= 0;
% phaseOutInfo[4][0]: PO port ves 4 PABLB(30) at 179
% phaseOutInfo[4][1]: PO port ves 4 PABLB(30) at 1355
% phaseOutInfo[4][2]: PO port ves 4 COBUN(31) at 270
% phaseOutInfo[4][3]: PO port ves 4 COBUN(31) at 1446
array[POPORTS4] of int: poTimes4 = array1d(POPORTS4, [179,1355,270,1446]);
constraint reposType[5] = 1 -> directCost[5] = directCostArr4[poAct4, piPort, piWeek[5]] /\ sosAct[5] = 0 /\ sos[5] = 0 /\ sosActSavings[5] = 0 /\ sosActBCost[5] = 0 /\ sosActACost[5] = 0;
constraint directCost[5] >= 0;
% phaseOutInfo[5][0]: PO port ves 5 PABLB(30) at 347
% phaseOutInfo[5][1]: PO port ves 5 PABLB(30) at 1523
% phaseOutInfo[5][2]: PO port ves 5 COBUN(31) at 438
array[POPORTS5] of int: poTimes5 = array1d(POPORTS5, [347,1523,438]);
constraint reposType[6] = 1 -> directCost[6] = directCostArr5[poAct5, piPort, piWeek[6]] /\ sosAct[6] = 0 /\ sos[6] = 0 /\ sosActSavings[6] = 0 /\ sosActBCost[6] = 0 /\ sosActACost[6] = 0;
constraint directCost[6] >= 0;
array[PIPORTS,WEEKS] of int: piTimes = array2d(PIPORTS, WEEKS, [
152,320,488,656,824,992,1160,1328,1496,1664,1832,
0,198,366,534,702,870,1038,1206,1374,1542,1710,
0,273,441,609,777,945,1113,1281,1449,1617,1785,
0,318,486,654,822,990,1158,1326,1494,1662,1830,
0,0,413,581,749,917,1085,1253,1421,1589,1757,
0,0,0,0,697,865,1033,1201,1369,1537,1705,
0,0,0,0,800,968,1136,1304,1472,1640,1808,
0,0,0,0,0,840,1008,1176,1344,1512,1680,
0,0,0,0,0,912,1080,1248,1416,1584,1752,
0,0,0,0,0,949,1117,1285,1453,1621,1789,
0,0,0,0,0,0,1147,1315,1483,1651,1819,
0,0,0,0,0,0,0,0,1471,1639,1807,
0,0,0,0,0,0,0,0,0,1580,1748
]);
% phaseInInfo[port][week]
% phaseInInfo[1][1]: PI port CNSHA(10) at 152
% phaseInInfo[1][2]: PI port CNSHA(10) at 320
% phaseInInfo[1][3]: PI port CNSHA(10) at 488
% phaseInInfo[1][4]: PI port CNSHA(10) at 656
% phaseInInfo[1][5]: PI port CNSHA(10) at 824
% phaseInInfo[1][6]: PI port CNSHA(10) at 992
% phaseInInfo[1][7]: PI port CNSHA(10) at 1160
% phaseInInfo[1][8]: PI port CNSHA(10) at 1328
% phaseInInfo[1][9]: PI port CNSHA(10) at 1496
% phaseInInfo[1][10]: PI port CNSHA(10) at 1664
% phaseInInfo[1][11]: PI port CNSHA(10) at 1832
% phaseInInfo[2][2]: PI port CNNGB(1) at 198
% phaseInInfo[2][3]: PI port CNNGB(1) at 366
% phaseInInfo[2][4]: PI port CNNGB(1) at 534
% phaseInInfo[2][5]: PI port CNNGB(1) at 702
% phaseInInfo[2][6]: PI port CNNGB(1) at 870
% phaseInInfo[2][7]: PI port CNNGB(1) at 1038
% phaseInInfo[2][8]: PI port CNNGB(1) at 1206
% phaseInInfo[2][9]: PI port CNNGB(1) at 1374
% phaseInInfo[2][10]: PI port CNNGB(1) at 1542
% phaseInInfo[2][11]: PI port CNNGB(1) at 1710
% phaseInInfo[3][2]: PI port CNNSA(3) at 273
% phaseInInfo[3][3]: PI port CNNSA(3) at 441
% phaseInInfo[3][4]: PI port CNNSA(3) at 609
% phaseInInfo[3][5]: PI port CNNSA(3) at 777
% phaseInInfo[3][6]: PI port CNNSA(3) at 945
% phaseInInfo[3][7]: PI port CNNSA(3) at 1113
% phaseInInfo[3][8]: PI port CNNSA(3) at 1281
% phaseInInfo[3][9]: PI port CNNSA(3) at 1449
% phaseInInfo[3][10]: PI port CNNSA(3) at 1617
% phaseInInfo[3][11]: PI port CNNSA(3) at 1785
% phaseInInfo[4][2]: PI port CNYTN(2) at 318
% phaseInInfo[4][3]: PI port CNYTN(2) at 486
% phaseInInfo[4][4]: PI port CNYTN(2) at 654
% phaseInInfo[4][5]: PI port CNYTN(2) at 822
% phaseInInfo[4][6]: PI port CNYTN(2) at 990
% phaseInInfo[4][7]: PI port CNYTN(2) at 1158
% phaseInInfo[4][8]: PI port CNYTN(2) at 1326
% phaseInInfo[4][9]: PI port CNYTN(2) at 1494
% phaseInInfo[4][10]: PI port CNYTN(2) at 1662
% phaseInInfo[4][11]: PI port CNYTN(2) at 1830
% phaseInInfo[5][3]: PI port MYTPP(4) at 413
% phaseInInfo[5][4]: PI port MYTPP(4) at 581
% phaseInInfo[5][5]: PI port MYTPP(4) at 749
% phaseInInfo[5][6]: PI port MYTPP(4) at 917
% phaseInInfo[5][7]: PI port MYTPP(4) at 1085
% phaseInInfo[5][8]: PI port MYTPP(4) at 1253
% phaseInInfo[5][9]: PI port MYTPP(4) at 1421
% phaseInInfo[5][10]: PI port MYTPP(4) at 1589
% phaseInInfo[5][11]: PI port MYTPP(4) at 1757
% phaseInInfo[6][5]: PI port EGSUZ(11) at 697
% phaseInInfo[6][6]: PI port EGSUZ(11) at 865
% phaseInInfo[6][7]: PI port EGSUZ(11) at 1033
% phaseInInfo[6][8]: PI port EGSUZ(11) at 1201
% phaseInInfo[6][9]: PI port EGSUZ(11) at 1369
% phaseInInfo[6][10]: PI port EGSUZ(11) at 1537
% phaseInInfo[6][11]: PI port EGSUZ(11) at 1705
% phaseInInfo[7][5]: PI port ESVLC(12) at 800
% phaseInInfo[7][6]: PI port ESVLC(12) at 968
% phaseInInfo[7][7]: PI port ESVLC(12) at 1136
% phaseInInfo[7][8]: PI port ESVLC(12) at 1304
% phaseInInfo[7][9]: PI port ESVLC(12) at 1472
% phaseInInfo[7][10]: PI port ESVLC(12) at 1640
% phaseInInfo[7][11]: PI port ESVLC(12) at 1808
% phaseInInfo[8][6]: PI port ESBCN(13) at 840
% phaseInInfo[8][7]: PI port ESBCN(13) at 1008
% phaseInInfo[8][8]: PI port ESBCN(13) at 1176
% phaseInInfo[8][9]: PI port ESBCN(13) at 1344
% phaseInInfo[8][10]: PI port ESBCN(13) at 1512
% phaseInInfo[8][11]: PI port ESBCN(13) at 1680
% phaseInInfo[9][6]: PI port ESALG(14) at 912
% phaseInInfo[9][7]: PI port ESALG(14) at 1080
% phaseInInfo[9][8]: PI port ESALG(14) at 1248
% phaseInInfo[9][9]: PI port ESALG(14) at 1416
% phaseInInfo[9][10]: PI port ESALG(14) at 1584
% phaseInInfo[9][11]: PI port ESALG(14) at 1752
% phaseInInfo[10][6]: PI port MAPTM(15) at 949
% phaseInInfo[10][7]: PI port MAPTM(15) at 1117
% phaseInInfo[10][8]: PI port MAPTM(15) at 1285
% phaseInInfo[10][9]: PI port MAPTM(15) at 1453
% phaseInInfo[10][10]: PI port MAPTM(15) at 1621
% phaseInInfo[10][11]: PI port MAPTM(15) at 1789
% phaseInInfo[11][7]: PI port EGSUZ(11) at 1147
% phaseInInfo[11][8]: PI port EGSUZ(11) at 1315
% phaseInInfo[11][9]: PI port EGSUZ(11) at 1483
% phaseInInfo[11][10]: PI port EGSUZ(11) at 1651
% phaseInInfo[11][11]: PI port EGSUZ(11) at 1819
% phaseInInfo[12][9]: PI port MYTPP(4) at 1471
% phaseInInfo[12][10]: PI port MYTPP(4) at 1639
% phaseInInfo[12][11]: PI port MYTPP(4) at 1807
% phaseInInfo[13][10]: PI port CNYTN(2) at 1580
% phaseInInfo[13][11]: PI port CNYTN(2) at 1748
% SOS (v0) 1: from MYTPP(4) to INVTZ(33); start: 678; duration: 31923; savings: 2101918
% SOS (v1) 1: from MYTPP(4) to INVTZ(33); start: 678; duration: 31923; savings: 2101918
% SOS (v2) 1: from MYTPP(4) to INVTZ(33); start: 678; duration: 31923; savings: 2101918
% SOS (v3) 1: from MYTPP(4) to INVTZ(33); start: 678; duration: 31923; savings: 2101918
% SOS (v4) 1: from MYTPP(4) to INVTZ(33); start: 678; duration: 31923; savings: 2101918
% SOS (v5) 1: from MYTPP(4) to INVTZ(33); start: 678; duration: 31923; savings: 2101918
% SOS (v0) 2: from MYPKG(24) to INVTZ(33); start: 1070; duration: 31531; savings: 2074046
% SOS (v1) 2: from MYPKG(24) to INVTZ(33); start: 1070; duration: 31531; savings: 2074046
% SOS (v2) 2: from MYPKG(24) to INVTZ(33); start: 1070; duration: 31531; savings: 2074046
% SOS (v3) 2: from MYPKG(24) to INVTZ(33); start: 1070; duration: 31531; savings: 2074046
% SOS (v4) 2: from MYPKG(24) to INVTZ(33); start: 1070; duration: 31531; savings: 2074046
% SOS (v5) 2: from MYPKG(24) to INVTZ(33); start: 1070; duration: 31531; savings: 2074046
% SOS (v0) 3: from INMAA(32) to INVTZ(33); start: 504; duration: 32097; savings: 2110902
% SOS (v1) 3: from INMAA(32) to INVTZ(33); start: 504; duration: 32097; savings: 2110902
% SOS (v2) 3: from INMAA(32) to INVTZ(33); start: 504; duration: 32097; savings: 2110902
% SOS (v3) 3: from INMAA(32) to INVTZ(33); start: 504; duration: 32097; savings: 2110902
% SOS (v4) 3: from INMAA(32) to INVTZ(33); start: 504; duration: 32097; savings: 2110902
% SOS (v5) 3: from INMAA(32) to INVTZ(33); start: 504; duration: 32097; savings: 2110902
% SOS (v0) 4: from MYTPP(4) to INVTZ(33); start: 846; duration: 31755; savings: 2090830
% SOS (v1) 4: from MYTPP(4) to INVTZ(33); start: 846; duration: 31755; savings: 2090830
% SOS (v2) 4: from MYTPP(4) to INVTZ(33); start: 846; duration: 31755; savings: 2090830
% SOS (v3) 4: from MYTPP(4) to INVTZ(33); start: 846; duration: 31755; savings: 2090830
% SOS (v4) 4: from MYTPP(4) to INVTZ(33); start: 846; duration: 31755; savings: 2090830
% SOS (v5) 4: from MYTPP(4) to INVTZ(33); start: 846; duration: 31755; savings: 2090830
% SOS (v0) 5: from MYPKG(24) to INVTZ(33); start: 1238; duration: 31363; savings: 2062958
% SOS (v1) 5: from MYPKG(24) to INVTZ(33); start: 1238; duration: 31363; savings: 2062958
% SOS (v2) 5: from MYPKG(24) to INVTZ(33); start: 1238; duration: 31363; savings: 2062958
% SOS (v3) 5: from MYPKG(24) to INVTZ(33); start: 1238; duration: 31363; savings: 2062958
% SOS (v4) 5: from MYPKG(24) to INVTZ(33); start: 1238; duration: 31363; savings: 2062958
% SOS (v5) 5: from MYPKG(24) to INVTZ(33); start: 1238; duration: 31363; savings: 2062958
% SOS (v0) 6: from INMAA(32) to INVTZ(33); start: 672; duration: 31929; savings: 2099814
% SOS (v1) 6: from INMAA(32) to INVTZ(33); start: 672; duration: 31929; savings: 2099814
% SOS (v2) 6: from INMAA(32) to INVTZ(33); start: 672; duration: 31929; savings: 2099814
% SOS (v3) 6: from INMAA(32) to INVTZ(33); start: 672; duration: 31929; savings: 2099814
% SOS (v4) 6: from INMAA(32) to INVTZ(33); start: 672; duration: 31929; savings: 2099814
% SOS (v5) 6: from INMAA(32) to INVTZ(33); start: 672; duration: 31929; savings: 2099814
% SOS (v0) 7: from AEKLF(38) to MYTPP(4); start: 1279; duration: 855; savings: 51430
% SOS (v1) 7: from AEKLF(38) to MYTPP(4); start: 1279; duration: 855; savings: 51430
% SOS (v2) 7: from AEKLF(38) to MYTPP(4); start: 1279; duration: 855; savings: 51430
% SOS (v3) 7: from AEKLF(38) to MYTPP(4); start: 1279; duration: 855; savings: 51430
% SOS (v4) 7: from AEKLF(38) to MYTPP(4); start: 1279; duration: 855; savings: 51430
% SOS (v5) 7: from AEKLF(38) to MYTPP(4); start: 1279; duration: 855; savings: 51430
% SOS (v0) 8: from MYPKG(24) to MYTPP(4); start: 1520; duration: 614; savings: 33524
% SOS (v1) 8: from MYPKG(24) to MYTPP(4); start: 1520; duration: 614; savings: 33524
% SOS (v2) 8: from MYPKG(24) to MYTPP(4); start: 1520; duration: 614; savings: 33524
% SOS (v3) 8: from MYPKG(24) to MYTPP(4); start: 1520; duration: 614; savings: 33524
% SOS (v4) 8: from MYPKG(24) to MYTPP(4); start: 1520; duration: 614; savings: 33524
% SOS (v5) 8: from MYPKG(24) to MYTPP(4); start: 1520; duration: 614; savings: 33524
% SOS (v0) 9: from AEKLF(38) to MYTPP(4); start: 1447; duration: 855; savings: 51430
% SOS (v1) 9: from AEKLF(38) to MYTPP(4); start: 1447; duration: 855; savings: 51430
% SOS (v2) 9: from AEKLF(38) to MYTPP(4); start: 1447; duration: 855; savings: 51430
% SOS (v3) 9: from AEKLF(38) to MYTPP(4); start: 1447; duration: 855; savings: 51430
% SOS (v4) 9: from AEKLF(38) to MYTPP(4); start: 1447; duration: 855; savings: 51430
% SOS (v5) 9: from AEKLF(38) to MYTPP(4); start: 1447; duration: 855; savings: 51430
% SOS (v0) 10: from MYPKG(24) to MYTPP(4); start: 1688; duration: 614; savings: 33524
% SOS (v1) 10: from MYPKG(24) to MYTPP(4); start: 1688; duration: 614; savings: 33524
% SOS (v2) 10: from MYPKG(24) to MYTPP(4); start: 1688; duration: 614; savings: 33524
% SOS (v3) 10: from MYPKG(24) to MYTPP(4); start: 1688; duration: 614; savings: 33524
% SOS (v4) 10: from MYPKG(24) to MYTPP(4); start: 1688; duration: 614; savings: 33524
% SOS (v5) 10: from MYPKG(24) to MYTPP(4); start: 1688; duration: 614; savings: 33524
sosActSize = 10;
sosSize = 4;
constraint alldifferent_except_0(sos);
constraint alldifferent_except_0(sosAct);
array[SOSACTS] of int: sosIds = array1d(SOSACTS, [0,1,1,1,2,2,2,3,3,4,4]);
constraint forall(v in VESSELS)(sos[v] = sosIds[sosAct[v]]);
array[VESSELS,SOSACTS] of int: sosActSavingsArr = array2d(VESSELS,SOSACTS,[0,2101918,2074046,2110902,2090830,2062958,2099814,51430,33524,51430,33524,
0,2101918,2074046,2110902,2090830,2062958,2099814,51430,33524,51430,33524,
0,2101918,2074046,2110902,2090830,2062958,2099814,51430,33524,51430,33524,
0,2101918,2074046,2110902,2090830,2062958,2099814,51430,33524,51430,33524,
0,2101918,2074046,2110902,2090830,2062958,2099814,51430,33524,51430,33524,
0,2101918,2074046,2110902,2090830,2062958,2099814,51430,33524,51430,33524
]);
constraint forall(v in VESSELS)(reposType[v] = 2 -> sos[v] > 0 /\ sosAct[v] > 0 /\ sosActSavings[v] = sosActSavingsArr[v,sosAct[v]] /\ directCost[v] = 0);
array[VESSELS] of var 0..sosActBCostMax: sosActBCost;
array[POPORTS0,SOSACTS] of int: sosSailCostBArr0 = array2d(POPORTS0,SOSACTS, [
0,1948,2146,3582,1948,2146,3582,3554,2146,3554,2146,
0,-1,-1,-1,-1,-1,-1,-1,2146,-1,2146,
0,2102,2083,2641,2102,2083,2641,3621,2083,3621,2083,
0,-1,-1,-1,-1,-1,-1,-1,17764,-1,2083,
0,1563,1761,23117,1563,1761,3197,3329,1761,3329,1761,
0,-1,-1,-1,-1,-1,-1,-1,48658,-1,1761,
0,1485,1453,2098,1485,1453,2098,3287,1453,3287,1453,
0,-1,-1,-1,-1,-1,-1,-1,44673,-1,1453,
0,0,265,60322,0,265,1701,3254,265,3254,265,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,265,
0,-1,270229,-1,-1,78999,-1,4392,5694,4392,5694,
0,-1,-1,-1,-1,-1,-1,2896,166747,2896,7616,
0,-1,-1,-1,-1,-1,-1,155170,182786,3417,6186,
0,-1,-1,-1,-1,-1,-1,-1,239551,28473,48320,
0,-1,-1,-1,-1,-1,-1,-1,-1,75337,350108,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,311207,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
]);
array[POPORTS1,SOSACTS] of int: sosSailCostBArr1 = array2d(POPORTS1,SOSACTS, [
0,1948,2146,153835,1948,2146,3582,3554,2146,3554,2146,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,2146,
0,2102,2083,87698,2102,2083,2641,3621,2083,3621,2083,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,17764,
0,1563,1761,-1,1563,1761,23117,3329,1761,3329,1761,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,48658,
0,1485,1453,-1,1485,1453,2098,3287,1453,3287,1453,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,44673,
0,0,265,-1,0,265,60322,3254,265,3254,265,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,270229,-1,81618,5694,4392,5694,
0,-1,-1,-1,-1,-1,-1,117794,357977,2896,166747,
0,-1,-1,-1,-1,-1,-1,-1,-1,155170,182786,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,239551,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
]);
array[POPORTS2,SOSACTS] of int: sosSailCostBArr2 = array2d(POPORTS2,SOSACTS, [
0,4639,4469,3002,4639,4469,3002,1384,4469,1384,4469,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,4874,4703,3289,4874,4703,3289,1710,4703,1710,4703,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,120210,5934,203045,6155,5934,11814,1755,5934,1755,5934,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,14834,4736,40135,4907,4736,3322,1744,4736,1744,4736,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,90890,4788,119259,4957,4788,3401,1855,4788,1855,4788,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,153362,4725,184623,4893,4725,3363,1855,4725,1855,4725,
0,-1,6301,-1,227347,6301,310182,1859,6301,1859,6301,
0,-1,4736,-1,100205,4736,125506,1744,4736,1744,4736,
0,-1,5087,-1,244118,5087,-1,1418,5087,1418,5087,
0,-1,5066,-1,272554,5066,-1,1386,5066,1386,5066,
0,-1,4469,-1,217872,4469,-1,1384,4469,1384,4469,
0,-1,0,-1,-1,0,-1,3084,0,3084,0,
0,-1,265,-1,-1,265,-1,38428,265,3254,265,
0,-1,-1,-1,-1,-1,-1,-1,2984,121996,2984,
0,-1,-1,-1,-1,-1,-1,-1,2434,147007,2434,
0,-1,-1,-1,-1,-1,-1,-1,80498,-1,2868,
0,-1,-1,-1,-1,-1,-1,-1,86448,-1,2557,
0,-1,-1,-1,-1,-1,-1,-1,64434,-1,2083,
0,-1,-1,-1,-1,-1,-1,-1,87956,-1,1850,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,1449,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,1761,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,265,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,0
]);
array[POPORTS3,SOSACTS] of int: sosSailCostBArr3 = array2d(POPORTS3,SOSACTS, [
0,4639,4469,3002,4639,4469,3002,1384,4469,1384,4469,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,101172,4703,126387,4874,4703,3289,1710,4703,1710,4703,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,311441,5934,-1,120210,5934,203045,1755,5934,1755,5934,
0,206064,4736,-1,14834,4736,40135,1744,4736,1744,4736,
0,282121,4788,-1,90890,4788,119259,1855,4788,1855,4788,
0,-1,4725,-1,153362,4725,184623,1855,4725,1855,4725,
0,-1,139479,-1,-1,6301,-1,1859,6301,1859,6301,
0,-1,17884,-1,-1,4736,-1,1744,4736,1744,4736,
0,-1,156250,-1,-1,5087,-1,1418,5087,1418,5087,
0,-1,184686,-1,-1,5066,-1,1386,5066,1386,5066,
0,-1,135572,-1,-1,4469,-1,1384,4469,1384,4469,
0,-1,-1,-1,-1,0,-1,172412,0,3084,0,
0,-1,-1,-1,-1,265,-1,-1,265,38428,265,
0,-1,-1,-1,-1,-1,-1,-1,170538,-1,2984,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,2434,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,80498,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,86448,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,64434,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,87956,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
]);
array[POPORTS4,SOSACTS] of int: sosSailCostBArr4 = array2d(POPORTS4,SOSACTS, [
0,636760,212153,-1,445530,20923,-1,7922,11248,7922,11248,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,331475,-1,564852,140245,-1,7991,11392,7991,11392,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
]);
array[POPORTS5,SOSACTS] of int: sosSailCostBArr5 = array2d(POPORTS5,SOSACTS, [
0,-1,403384,-1,636760,212153,-1,7922,11248,7922,11248,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,522706,-1,-1,331475,-1,7991,11392,7991,11392
]);
constraint forall(v in VESSELS)(sosActBCost[v] >= 0);
array[VESSELS] of var 0..sosActACostMax: sosActACost;
array[VESSELS,PIPORTS,WEEKS,SOSACTS] of int: sosSailCostAArr = array4d(VESSELS,PIPORTS,WEEKS,SOSACTS, [
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
]);
constraint reposType[1] = 2 -> sosActBCost[1] = sosSailCostBArr0[poAct0,sosAct[1]] /\ sosActACost[1] = sosSailCostAArr[1,piPort,piWeek[1],sosAct[1]];
constraint reposType[2] = 2 -> sosActBCost[2] = sosSailCostBArr1[poAct1,sosAct[2]] /\ sosActACost[2] = sosSailCostAArr[2,piPort,piWeek[2],sosAct[2]];
constraint reposType[3] = 2 -> sosActBCost[3] = sosSailCostBArr2[poAct2,sosAct[3]] /\ sosActACost[3] = sosSailCostAArr[3,piPort,piWeek[3],sosAct[3]];
constraint reposType[4] = 2 -> sosActBCost[4] = sosSailCostBArr3[poAct3,sosAct[4]] /\ sosActACost[4] = sosSailCostAArr[4,piPort,piWeek[4],sosAct[4]];
constraint reposType[5] = 2 -> sosActBCost[5] = sosSailCostBArr4[poAct4,sosAct[5]] /\ sosActACost[5] = sosSailCostAArr[5,piPort,piWeek[5],sosAct[5]];
constraint reposType[6] = 2 -> sosActBCost[6] = sosSailCostBArr5[poAct5,sosAct[6]] /\ sosActACost[6] = sosSailCostAArr[6,piPort,piWeek[6],sosAct[6]];
constraint forall(v in VESSELS)(sosActACost[v] >= 0);
constraint forall(v in VESSELS)(sos[v] > 0 \/ sosAct[v] > 0 -> reposType[v] = 2);
array[POPORTS0,PIPORTS,WEEKS] of int: directCostArr0;
directCostArr0 = array3d(POPORTS0,PIPORTS,WEEKS,[
23229,463,463,463,463,463,463,463,463,463,463,
-1,271,271,271,271,271,271,271,271,271,271,
-1,391,391,391,391,391,391,391,391,391,391,
-1,488,488,488,488,488,488,488,488,488,488,
-1,-1,1948,1948,1948,1948,1948,1948,1948,1948,1948,
-1,-1,-1,-1,4713,4713,4713,4713,4713,4713,4713,
-1,-1,-1,-1,211799,20568,8958,8958,8958,8958,8958,
-1,-1,-1,-1,-1,157192,8875,8875,8875,8875,8875,
-1,-1,-1,-1,-1,112802,9219,9219,9219,9219,9219,
-1,-1,-1,-1,-1,73558,9246,9246,9246,9246,9246,
-1,-1,-1,-1,-1,-1,4713,4713,4713,4713,4713,
-1,-1,-1,-1,-1,-1,-1,-1,1948,1948,1948,
-1,-1,-1,-1,-1,-1,-1,-1,-1,488,488,
-1,-1,-1,-1,-1,-1,-1,23229,463,463,463,
-1,-1,-1,-1,-1,-1,-1,-1,271,271,271,
-1,-1,-1,-1,-1,-1,-1,-1,391,391,391,
-1,-1,-1,-1,-1,-1,-1,28262,488,488,488,
-1,-1,-1,-1,-1,-1,-1,-1,79237,1948,1948,
-1,-1,-1,-1,-1,-1,-1,-1,-1,248658,57428,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,403029,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,495263,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,456019,
-1,-1,-1,-1,-1,-1,-1,-1,-1,118895,4713,
-1,-1,-1,-1,-1,-1,-1,-1,22323,1948,1948,
-1,-1,-1,-1,-1,-1,-1,-1,-1,488,488,
-1,85,85,85,85,85,85,85,85,85,85,
-1,0,0,0,0,0,0,0,0,0,0,
-1,638,638,638,638,638,638,638,638,638,638,
-1,619,619,619,619,619,619,619,619,619,619,
-1,-1,2102,2102,2102,2102,2102,2102,2102,2102,2102,
-1,-1,-1,-1,4714,4714,4714,4714,4714,4714,4714,
-1,-1,-1,-1,5835,5835,5835,5835,5835,5835,5835,
-1,-1,-1,-1,-1,5662,5662,5662,5662,5662,5662,
-1,-1,-1,-1,-1,6165,6165,6165,6165,6165,6165,
-1,-1,-1,-1,-1,6177,6177,6177,6177,6177,6177,
-1,-1,-1,-1,-1,-1,4714,4714,4714,4714,4714,
-1,-1,-1,-1,-1,-1,-1,-1,2102,2102,2102,
-1,-1,-1,-1,-1,-1,-1,-1,-1,619,619,
-1,-1,-1,-1,-1,-1,-1,-1,85,85,85,
-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,638,638,638,
-1,-1,-1,-1,-1,-1,-1,-1,619,619,619,
-1,-1,-1,-1,-1,-1,-1,-1,-1,2102,2102,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,93968,
-1,-1,-1,-1,-1,-1,-1,-1,-1,290176,98945,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,225836,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,198654,
-1,-1,-1,-1,-1,-1,-1,-1,-1,349090,157860,
-1,-1,-1,-1,-1,-1,-1,-1,-1,155435,4714,
-1,-1,-1,-1,-1,-1,-1,-1,75519,2102,2102,
-1,-1,-1,-1,-1,-1,-1,-1,-1,619,619,
-1,873,873,873,873,873,873,873,873,873,873,
-1,-1,619,619,619,619,619,619,619,619,619,
-1,42,42,42,42,42,42,42,42,42,42,
-1,0,0,0,0,0,0,0,0,0,0,
-1,-1,1563,1563,1563,1563,1563,1563,1563,1563,1563,
-1,-1,-1,-1,4556,4556,4556,4556,4556,4556,4556,
-1,-1,-1,-1,272312,81082,8573,8573,8573,8573,8573,
-1,-1,-1,-1,-1,217705,26475,8490,8490,8490,8490,
-1,-1,-1,-1,-1,173316,8835,8835,8835,8835,8835,
-1,-1,-1,-1,-1,134071,8861,8861,8861,8861,8861,
-1,-1,-1,-1,-1,-1,4556,4556,4556,4556,4556,
-1,-1,-1,-1,-1,-1,-1,-1,1563,1563,1563,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,873,873,873,
-1,-1,-1,-1,-1,-1,-1,-1,-1,619,619,
-1,-1,-1,-1,-1,-1,-1,-1,42,42,42,
-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1563,1563,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,142748,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,463542,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,516532,
-1,-1,-1,-1,-1,-1,-1,-1,-1,204215,12984,
-1,-1,-1,-1,-1,-1,-1,-1,82836,1563,1563,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,695,695,695,695,695,695,695,695,695,695,
-1,-1,638,638,638,638,638,638,638,638,638,
-1,0,0,0,0,0,0,0,0,0,0,
-1,42,42,42,42,42,42,42,42,42,42,
-1,-1,1485,1485,1485,1485,1485,1485,1485,1485,1485,
-1,-1,-1,-1,4514,4514,4514,4514,4514,4514,4514,
-1,-1,-1,-1,5855,5855,5855,5855,5855,5855,5855,
-1,-1,-1,-1,-1,5687,5687,5687,5687,5687,5687,
-1,-1,-1,-1,-1,6185,6185,6185,6185,6185,6185,
-1,-1,-1,-1,-1,6195,6195,6195,6195,6195,6195,
-1,-1,-1,-1,-1,-1,4514,4514,4514,4514,4514,
-1,-1,-1,-1,-1,-1,-1,-1,1485,1485,1485,
-1,-1,-1,-1,-1,-1,-1,-1,-1,42,42,
-1,-1,-1,-1,-1,-1,-1,-1,695,695,695,
-1,-1,-1,-1,-1,-1,-1,-1,-1,638,638,
-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,42,42,42,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1485,1485,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,167843,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,196816,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,324158,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,296447,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,255452,
-1,-1,-1,-1,-1,-1,-1,-1,-1,229310,38080,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1485,1485,
-1,-1,-1,-1,-1,-1,-1,-1,-1,42,42,
-1,-1,-1,2359,2359,2359,2359,2359,2359,2359,2359,
-1,-1,-1,69828,2102,2102,2102,2102,2102,2102,2102,
-1,-1,-1,1485,1485,1485,1485,1485,1485,1485,1485,
-1,-1,65762,1563,1563,1563,1563,1563,1563,1563,1563,
-1,-1,0,0,0,0,0,0,0,0,0,
-1,-1,-1,-1,160959,4639,4639,4639,4639,4639,4639,
-1,-1,-1,-1,309517,118287,7077,7077,7077,7077,7077,
-1,-1,-1,-1,-1,254910,63680,6994,6994,6994,6994,
-1,-1,-1,-1,-1,210521,19290,7338,7338,7338,7338,
-1,-1,-1,-1,-1,171277,7365,7365,7365,7365,7365,
-1,-1,-1,-1,-1,-1,4639,4639,4639,4639,4639,
-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1563,1563,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2359,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,69828,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1485,
-1,-1,-1,-1,-1,-1,-1,-1,-1,65762,1563,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,222426,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1563,
-1,-1,-1,-1,-1,-1,425233,234003,42772,8055,8055,
-1,-1,-1,-1,-1,-1,-1,296944,105713,7358,7358,
-1,-1,-1,-1,-1,-1,336123,144893,6747,6747,6747,
-1,-1,-1,-1,-1,-1,344451,153220,7293,7293,7293,
-1,-1,-1,-1,-1,-1,279922,88692,5939,5939,5939,
-1,-1,-1,-1,-1,-1,149921,4204,4204,4204,4204,
-1,-1,-1,-1,-1,-1,198779,7549,5727,5727,5727,
-1,-1,-1,-1,-1,-1,-1,168183,5864,5864,5864,
-1,-1,-1,-1,-1,-1,221395,30165,5350,5350,5350,
-1,-1,-1,-1,-1,-1,172845,5291,5291,5291,5291,
-1,-1,-1,-1,-1,-1,20157,4204,4204,4204,4204,
-1,-1,-1,-1,-1,-1,-1,-1,5939,5939,5939,
-1,-1,-1,-1,-1,-1,-1,-1,-1,7293,7293,
-1,-1,-1,-1,-1,-1,-1,-1,451514,260284,69053,
-1,-1,-1,-1,-1,-1,-1,-1,212546,21316,6511,
-1,-1,-1,-1,-1,-1,-1,275208,83978,6115,6115,
-1,-1,-1,-1,-1,-1,-1,-1,370732,179501,9215,
-1,-1,-1,-1,-1,-1,-1,-1,306203,114973,7861,
-1,-1,-1,-1,-1,-1,122021,2121,2121,2121,2121,
-1,-1,-1,-1,-1,-1,228757,37527,4175,4175,4175,
-1,-1,-1,-1,-1,-1,-1,198161,6930,4312,4312,
-1,-1,-1,-1,-1,-1,-1,62555,3820,3820,3820,
-1,-1,-1,-1,-1,-1,202824,11593,3739,3739,3739,
-1,-1,-1,-1,-1,-1,2121,2121,2121,2121,2121,
-1,-1,-1,-1,-1,-1,-1,-1,249289,58059,7861,
-1,-1,-1,-1,-1,-1,-1,-1,-1,272840,81609,
-1,-1,-1,-1,-1,-1,-1,-1,295210,103979,6967,
-1,-1,-1,-1,-1,-1,-1,-1,-1,246681,55450,
-1,-1,-1,-1,-1,-1,-1,-1,320068,128837,6704,
-1,-1,-1,-1,-1,-1,-1,-1,273436,82205,6746,
-1,-1,-1,-1,-1,-1,-1,-1,311533,120303,6333,
-1,-1,-1,-1,-1,-1,-1,124868,2325,2325,2325,
-1,-1,-1,-1,-1,-1,-1,2103,2103,2103,2103,
-1,-1,-1,-1,-1,-1,-1,-1,2214,2214,2214,
-1,-1,-1,-1,-1,-1,-1,30334,1948,1948,1948,
-1,-1,-1,-1,-1,-1,-1,1934,1934,1934,1934,
-1,-1,-1,-1,-1,-1,-1,2325,2325,2325,2325,
-1,-1,-1,-1,-1,-1,-1,-1,254619,63389,6333,
-1,-1,-1,-1,-1,-1,-1,-1,-1,175544,6746,
-1,-1,-1,-1,-1,-1,-1,-1,363050,171820,6837,
-1,-1,-1,-1,-1,-1,-1,-1,-1,313952,122722,
-1,-1,-1,-1,-1,-1,-1,-1,383612,192381,6535,
-1,-1,-1,-1,-1,-1,-1,-1,336967,145737,6577,
-1,-1,-1,-1,-1,-1,-1,-1,-1,176739,6099,
-1,-1,-1,-1,-1,-1,-1,-1,7324,2249,2249,
-1,-1,-1,-1,-1,-1,-1,80703,2243,2243,2243,
-1,-1,-1,-1,-1,-1,-1,-1,45688,2340,2340,
-1,-1,-1,-1,-1,-1,-1,-1,2120,2120,2120,
-1,-1,-1,-1,-1,-1,-1,87517,2107,2107,2107,
-1,-1,-1,-1,-1,-1,-1,68791,2249,2249,2249,
-1,-1,-1,-1,-1,-1,-1,-1,311056,119825,6099,
-1,-1,-1,-1,-1,-1,-1,-1,-1,239075,47845,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,443645,
-1,-1,-1,-1,-1,-1,-1,-1,-1,361762,170532,
-1,-1,-1,-1,-1,-1,-1,-1,-1,237883,46652,
-1,-1,-1,-1,-1,-1,-1,-1,-1,554093,362863,
-1,-1,-1,-1,-1,-1,-1,-1,-1,489565,298334,
-1,-1,-1,-1,-1,-1,-1,-1,61308,2190,2190,
-1,-1,-1,-1,-1,-1,-1,-1,135531,3947,3947,
-1,-1,-1,-1,-1,-1,-1,-1,-1,104935,4084,
-1,-1,-1,-1,-1,-1,-1,-1,160560,3592,3592,
-1,-1,-1,-1,-1,-1,-1,-1,109598,3510,3510,
-1,-1,-1,-1,-1,-1,-1,122775,2190,2190,2190,
-1,-1,-1,-1,-1,-1,-1,-1,-1,432651,241420,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,456201,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,404744,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,315634,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,323962,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,259433,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,129432,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,178290,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,338924,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,200906,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,152356,
-1,-1,-1,-1,-1,-1,-1,-1,-1,190899,4204,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,202519,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,417300,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
]);
array[POPORTS1,PIPORTS,WEEKS] of int: directCostArr1;
directCostArr1 = array3d(POPORTS1,PIPORTS,WEEKS,[
-1,23229,463,463,463,463,463,463,463,463,463,
-1,-1,271,271,271,271,271,271,271,271,271,
-1,-1,391,391,391,391,391,391,391,391,391,
-1,28262,488,488,488,488,488,488,488,488,488,
-1,-1,79237,1948,1948,1948,1948,1948,1948,1948,1948,
-1,-1,-1,-1,57428,4713,4713,4713,4713,4713,4713,
-1,-1,-1,-1,403029,211799,20568,8958,8958,8958,8958,
-1,-1,-1,-1,-1,348423,157192,8875,8875,8875,8875,
-1,-1,-1,-1,-1,304033,112802,9219,9219,9219,9219,
-1,-1,-1,-1,-1,264789,73558,9246,9246,9246,9246,
-1,-1,-1,-1,-1,-1,4713,4713,4713,4713,4713,
-1,-1,-1,-1,-1,-1,-1,-1,1948,1948,1948,
-1,-1,-1,-1,-1,-1,-1,-1,-1,488,488,
-1,-1,-1,-1,-1,-1,-1,-1,23229,463,463,
-1,-1,-1,-1,-1,-1,-1,-1,-1,271,271,
-1,-1,-1,-1,-1,-1,-1,-1,-1,391,391,
-1,-1,-1,-1,-1,-1,-1,-1,28262,488,488,
-1,-1,-1,-1,-1,-1,-1,-1,-1,79237,1948,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,248658,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,118895,
-1,-1,-1,-1,-1,-1,-1,-1,-1,22323,1948,
-1,-1,-1,-1,-1,-1,-1,-1,-1,488,488,
-1,-1,85,85,85,85,85,85,85,85,85,
-1,-1,0,0,0,0,0,0,0,0,0,
-1,-1,638,638,638,638,638,638,638,638,638,
-1,-1,619,619,619,619,619,619,619,619,619,
-1,-1,-1,2102,2102,2102,2102,2102,2102,2102,2102,
-1,-1,-1,-1,93968,4714,4714,4714,4714,4714,4714,
-1,-1,-1,-1,98945,5835,5835,5835,5835,5835,5835,
-1,-1,-1,-1,-1,34605,5662,5662,5662,5662,5662,
-1,-1,-1,-1,-1,7424,6165,6165,6165,6165,6165,
-1,-1,-1,-1,-1,6177,6177,6177,6177,6177,6177,
-1,-1,-1,-1,-1,-1,4714,4714,4714,4714,4714,
-1,-1,-1,-1,-1,-1,-1,-1,2102,2102,2102,
-1,-1,-1,-1,-1,-1,-1,-1,-1,619,619,
-1,-1,-1,-1,-1,-1,-1,-1,-1,85,85,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,638,638,
-1,-1,-1,-1,-1,-1,-1,-1,-1,619,619,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2102,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,290176,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,349090,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,155435,
-1,-1,-1,-1,-1,-1,-1,-1,-1,75519,2102,
-1,-1,-1,-1,-1,-1,-1,-1,-1,619,619,
-1,-1,873,873,873,873,873,873,873,873,873,
-1,-1,-1,619,619,619,619,619,619,619,619,
-1,-1,42,42,42,42,42,42,42,42,42,
-1,-1,0,0,0,0,0,0,0,0,0,
-1,-1,-1,1563,1563,1563,1563,1563,1563,1563,1563,
-1,-1,-1,-1,142748,4556,4556,4556,4556,4556,4556,
-1,-1,-1,-1,463542,272312,81082,8573,8573,8573,8573,
-1,-1,-1,-1,-1,408936,217705,26475,8490,8490,8490,
-1,-1,-1,-1,-1,364546,173316,8835,8835,8835,8835,
-1,-1,-1,-1,-1,325302,134071,8861,8861,8861,8861,
-1,-1,-1,-1,-1,-1,4556,4556,4556,4556,4556,
-1,-1,-1,-1,-1,-1,-1,-1,1563,1563,1563,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,873,873,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,619,
-1,-1,-1,-1,-1,-1,-1,-1,-1,42,42,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1563,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,204215,
-1,-1,-1,-1,-1,-1,-1,-1,-1,82836,1563,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,695,695,695,695,695,695,695,695,695,
-1,-1,-1,638,638,638,638,638,638,638,638,
-1,-1,0,0,0,0,0,0,0,0,0,
-1,-1,42,42,42,42,42,42,42,42,42,
-1,-1,-1,1485,1485,1485,1485,1485,1485,1485,1485,
-1,-1,-1,-1,167843,4514,4514,4514,4514,4514,4514,
-1,-1,-1,-1,196816,5855,5855,5855,5855,5855,5855,
-1,-1,-1,-1,-1,132927,5687,5687,5687,5687,5687,
-1,-1,-1,-1,-1,105217,6185,6185,6185,6185,6185,
-1,-1,-1,-1,-1,64222,6195,6195,6195,6195,6195,
-1,-1,-1,-1,-1,-1,4514,4514,4514,4514,4514,
-1,-1,-1,-1,-1,-1,-1,-1,1485,1485,1485,
-1,-1,-1,-1,-1,-1,-1,-1,-1,42,42,
-1,-1,-1,-1,-1,-1,-1,-1,-1,695,695,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,638,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,42,42,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1485,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,229310,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1485,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,
-1,-1,-1,-1,2359,2359,2359,2359,2359,2359,2359,
-1,-1,-1,-1,69828,2102,2102,2102,2102,2102,2102,
-1,-1,-1,-1,1485,1485,1485,1485,1485,1485,1485,
-1,-1,-1,65762,1563,1563,1563,1563,1563,1563,1563,
-1,-1,-1,0,0,0,0,0,0,0,0,
-1,-1,-1,-1,-1,160959,4639,4639,4639,4639,4639,
-1,-1,-1,-1,-1,309517,118287,7077,7077,7077,7077,
-1,-1,-1,-1,-1,-1,254910,63680,6994,6994,6994,
-1,-1,-1,-1,-1,401751,210521,19290,7338,7338,7338,
-1,-1,-1,-1,-1,362507,171277,7365,7365,7365,7365,
-1,-1,-1,-1,-1,-1,4639,4639,4639,4639,4639,
-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1563,1563,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65762,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,425233,234003,42772,8055,
-1,-1,-1,-1,-1,-1,-1,-1,296944,105713,7358,
-1,-1,-1,-1,-1,-1,-1,336123,144893,6747,6747,
-1,-1,-1,-1,-1,-1,-1,344451,153220,7293,7293,
-1,-1,-1,-1,-1,-1,-1,279922,88692,5939,5939,
-1,-1,-1,-1,-1,-1,-1,149921,4204,4204,4204,
-1,-1,-1,-1,-1,-1,-1,198779,7549,5727,5727,
-1,-1,-1,-1,-1,-1,-1,-1,168183,5864,5864,
-1,-1,-1,-1,-1,-1,-1,221395,30165,5350,5350,
-1,-1,-1,-1,-1,-1,-1,172845,5291,5291,5291,
-1,-1,-1,-1,-1,-1,211388,20157,4204,4204,4204,
-1,-1,-1,-1,-1,-1,-1,-1,31778,5939,5939,
-1,-1,-1,-1,-1,-1,-1,-1,-1,55328,7293,
-1,-1,-1,-1,-1,-1,-1,-1,-1,451514,260284,
-1,-1,-1,-1,-1,-1,-1,-1,-1,212546,21316,
-1,-1,-1,-1,-1,-1,-1,-1,275208,83978,6115,
-1,-1,-1,-1,-1,-1,-1,-1,-1,370732,179501,
-1,-1,-1,-1,-1,-1,-1,-1,-1,306203,114973,
-1,-1,-1,-1,-1,-1,-1,122021,2121,2121,2121,
-1,-1,-1,-1,-1,-1,-1,228757,37527,4175,4175,
-1,-1,-1,-1,-1,-1,-1,-1,198161,6930,4312,
-1,-1,-1,-1,-1,-1,-1,-1,62555,3820,3820,
-1,-1,-1,-1,-1,-1,-1,202824,11593,3739,3739,
-1,-1,-1,-1,-1,-1,-1,2121,2121,2121,2121,
-1,-1,-1,-1,-1,-1,-1,-1,440520,249289,58059,
-1,-1,-1,-1,-1,-1,-1,-1,-1,464070,272840,
-1,-1,-1,-1,-1,-1,-1,-1,-1,295210,103979,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,246681,
-1,-1,-1,-1,-1,-1,-1,-1,-1,320068,128837,
-1,-1,-1,-1,-1,-1,-1,-1,-1,273436,82205,
-1,-1,-1,-1,-1,-1,-1,-1,-1,311533,120303,
-1,-1,-1,-1,-1,-1,-1,-1,124868,2325,2325,
-1,-1,-1,-1,-1,-1,-1,-1,2103,2103,2103,
-1,-1,-1,-1,-1,-1,-1,-1,-1,2214,2214,
-1,-1,-1,-1,-1,-1,-1,-1,30334,1948,1948,
-1,-1,-1,-1,-1,-1,-1,-1,1934,1934,1934,
-1,-1,-1,-1,-1,-1,-1,-1,2325,2325,2325,
-1,-1,-1,-1,-1,-1,-1,-1,-1,254619,63389,
-1,-1,-1,-1,-1,-1,-1,-1,-1,366774,175544,
-1,-1,-1,-1,-1,-1,-1,-1,-1,363050,171820,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,313952,
-1,-1,-1,-1,-1,-1,-1,-1,-1,383612,192381,
-1,-1,-1,-1,-1,-1,-1,-1,-1,336967,145737,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,176739,
-1,-1,-1,-1,-1,-1,-1,-1,-1,7324,2249,
-1,-1,-1,-1,-1,-1,-1,-1,80703,2243,2243,
-1,-1,-1,-1,-1,-1,-1,-1,-1,45688,2340,
-1,-1,-1,-1,-1,-1,-1,-1,-1,2120,2120,
-1,-1,-1,-1,-1,-1,-1,-1,87517,2107,2107,
-1,-1,-1,-1,-1,-1,-1,-1,68791,2249,2249,
-1,-1,-1,-1,-1,-1,-1,-1,-1,311056,119825,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,239075,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,361762,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,237883,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,554093,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,489565,
-1,-1,-1,-1,-1,-1,-1,-1,-1,61308,2190,
-1,-1,-1,-1,-1,-1,-1,-1,-1,135531,3947,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,104935,
-1,-1,-1,-1,-1,-1,-1,-1,-1,160560,3592,
-1,-1,-1,-1,-1,-1,-1,-1,-1,109598,3510,
-1,-1,-1,-1,-1,-1,-1,-1,122775,2190,2190,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,432651,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,190899,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
]);
array[POPORTS2,PIPORTS,WEEKS] of int: directCostArr2;
directCostArr2 = array3d(POPORTS2,PIPORTS,WEEKS,[
-1,191683,4670,4670,4670,4670,4670,4670,4670,4670,4670,
-1,-1,144052,4714,4714,4714,4714,4714,4714,4714,4714,
-1,228172,36941,4514,4514,4514,4514,4514,4514,4514,4514,
-1,181449,4556,4556,4556,4556,4556,4556,4556,4556,4556,
-1,-1,82418,4639,4639,4639,4639,4639,4639,4639,4639,
-1,-1,-1,-1,0,0,0,0,0,0,0,
-1,-1,-1,-1,1761,1761,1761,1761,1761,1761,1761,
-1,-1,-1,-1,-1,1661,1661,1661,1661,1661,1661,
-1,-1,-1,-1,-1,2006,2006,2006,2006,2006,2006,
-1,-1,-1,-1,-1,2008,2008,2008,2008,2008,2008,
-1,-1,-1,-1,-1,-1,0,0,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,4639,4639,4639,
-1,-1,-1,-1,-1,-1,-1,-1,-1,4556,4556,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,191683,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,228172,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,181449,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,92987,1761,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36573,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2006,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2008,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,216734,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,87985,4523,4523,4523,4523,4523,4523,4523,4523,
-1,-1,232913,41682,4579,4579,4579,4579,4579,4579,4579,
-1,-1,137967,4491,4491,4491,4491,4491,4491,4491,4491,
-1,-1,91004,4530,4530,4530,4530,4530,4530,4530,4530,
-1,-1,211585,20354,4874,4874,4874,4874,4874,4874,4874,
-1,-1,-1,-1,626,626,626,626,626,626,626,
-1,-1,-1,-1,1449,1449,1449,1449,1449,1449,1449,
-1,-1,-1,-1,-1,1307,1307,1307,1307,1307,1307,
-1,-1,-1,-1,-1,1754,1754,1754,1754,1754,1754,
-1,-1,-1,-1,-1,1761,1761,1761,1761,1761,1761,
-1,-1,-1,-1,-1,-1,626,626,626,626,626,
-1,-1,-1,-1,-1,-1,-1,-1,4874,4874,4874,
-1,-1,-1,-1,-1,-1,-1,-1,-1,4530,4530,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,626,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1449,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,68370,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27021,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,626,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,395119,203889,12659,8447,8447,8447,8447,8447,
-1,-1,-1,116111,4614,4614,4614,4614,4614,4614,4614,
-1,-1,212908,21678,4531,4531,4531,4531,4531,4531,4531,
-1,-1,-1,310661,119430,7651,7651,7651,7651,7651,7651,
-1,-1,-1,230623,39393,6155,6155,6155,6155,6155,6155,
-1,-1,-1,-1,649,649,649,649,649,649,649,
-1,-1,-1,-1,1614,1614,1614,1614,1614,1614,1614,
-1,-1,-1,-1,-1,1526,1526,1526,1526,1526,1526,
-1,-1,-1,-1,-1,1908,1908,1908,1908,1908,1908,
-1,-1,-1,-1,-1,1924,1924,1924,1924,1924,1924,
-1,-1,-1,-1,-1,-1,649,649,649,649,649,
-1,-1,-1,-1,-1,-1,-1,-1,6155,6155,6155,
-1,-1,-1,-1,-1,-1,-1,-1,-1,7651,7651,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,59893,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,649,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,191711,4545,4545,4545,4545,4545,4545,4545,4545,
-1,-1,-1,145460,4601,4601,4601,4601,4601,4601,4601,
-1,-1,242204,50973,4518,4518,4518,4518,4518,4518,4518,
-1,-1,195231,4557,4557,4557,4557,4557,4557,4557,4557,
-1,-1,-1,125247,4907,4907,4907,4907,4907,4907,4907,
-1,-1,-1,-1,647,647,647,647,647,647,647,
-1,-1,-1,-1,1417,1417,1417,1417,1417,1417,1417,
-1,-1,-1,-1,-1,1273,1273,1273,1273,1273,1273,
-1,-1,-1,-1,-1,1723,1723,1723,1723,1723,1723,
-1,-1,-1,-1,-1,1730,1730,1730,1730,1730,1730,
-1,-1,-1,-1,-1,-1,647,647,647,647,647,
-1,-1,-1,-1,-1,-1,-1,-1,4907,4907,4907,
-1,-1,-1,-1,-1,-1,-1,-1,-1,4557,4557,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,69177,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,647,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,254621,63391,4475,4475,4475,4475,4475,4475,4475,
-1,-1,-1,208745,17515,4535,4535,4535,4535,4535,4535,
-1,-1,-1,118175,4487,4487,4487,4487,4487,4487,4487,
-1,-1,262325,71095,4525,4525,4525,4525,4525,4525,4525,
-1,-1,-1,201303,10072,4957,4957,4957,4957,4957,4957,
-1,-1,-1,-1,845,845,845,845,845,845,845,
-1,-1,-1,-1,1393,1393,1393,1393,1393,1393,1393,
-1,-1,-1,-1,-1,1236,1236,1236,1236,1236,1236,
-1,-1,-1,-1,-1,1713,1713,1713,1713,1713,1713,
-1,-1,-1,-1,-1,1721,1721,1721,1721,1721,1721,
-1,-1,-1,-1,-1,-1,845,845,845,845,845,
-1,-1,-1,-1,-1,-1,-1,-1,4957,4957,4957,
-1,-1,-1,-1,-1,-1,-1,-1,-1,4525,4525,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,117863,4338,4338,4338,4338,4338,4338,4338,
-1,-1,-1,-1,72155,4399,4399,4399,4399,4399,4399,
-1,-1,-1,174856,4370,4370,4370,4370,4370,4370,4370,
-1,-1,-1,127709,4407,4407,4407,4407,4407,4407,4407,
-1,-1,-1,263775,72545,4893,4893,4893,4893,4893,4893,
-1,-1,-1,-1,963,963,963,963,963,963,963,
-1,-1,-1,-1,1492,1492,1492,1492,1492,1492,1492,
-1,-1,-1,-1,-1,1329,1329,1329,1329,1329,1329,
-1,-1,-1,-1,-1,1818,1818,1818,1818,1818,1818,
-1,-1,-1,-1,-1,1827,1827,1827,1827,1827,1827,
-1,-1,-1,-1,-1,-1,963,963,963,963,963,
-1,-1,-1,-1,-1,-1,-1,-1,4893,4893,4893,
-1,-1,-1,-1,-1,-1,-1,-1,-1,4407,4407,
-1,-1,-1,-1,502256,311026,119796,8814,8814,8814,8814,
-1,-1,-1,-1,159129,4393,4393,4393,4393,4393,4393,
-1,-1,-1,-1,70775,4365,4365,4365,4365,4365,4365,
-1,-1,-1,-1,417798,226567,35337,8018,8018,8018,8018,
-1,-1,-1,-1,337760,146530,6522,6522,6522,6522,6522,
-1,-1,-1,-1,972,972,972,972,972,972,972,
-1,-1,-1,-1,1987,1987,1987,1987,1987,1987,1987,
-1,-1,-1,-1,-1,1830,1830,1830,1830,1830,1830,
-1,-1,-1,-1,-1,2273,2273,2273,2273,2273,2273,
-1,-1,-1,-1,-1,2286,2286,2286,2286,2286,2286,
-1,-1,-1,-1,-1,-1,972,972,972,972,972,
-1,-1,-1,-1,-1,-1,-1,-1,6522,6522,6522,
-1,-1,-1,-1,-1,-1,-1,-1,-1,8018,8018,
-1,-1,-1,-1,85851,4545,4545,4545,4545,4545,4545,
-1,-1,-1,-1,230831,39600,4601,4601,4601,4601,4601,
-1,-1,-1,-1,136344,4518,4518,4518,4518,4518,4518,
-1,-1,-1,-1,89372,4557,4557,4557,4557,4557,4557,
-1,-1,-1,-1,210618,19387,4907,4907,4907,4907,4907,
-1,-1,-1,-1,647,647,647,647,647,647,647,
-1,-1,-1,-1,1417,1417,1417,1417,1417,1417,1417,
-1,-1,-1,-1,-1,1273,1273,1273,1273,1273,1273,
-1,-1,-1,-1,-1,1723,1723,1723,1723,1723,1723,
-1,-1,-1,-1,-1,1730,1730,1730,1730,1730,1730,
-1,-1,-1,-1,-1,-1,647,647,647,647,647,
-1,-1,-1,-1,-1,-1,-1,-1,4907,4907,4907,
-1,-1,-1,-1,-1,-1,-1,-1,-1,4557,4557,
-1,-1,-1,-1,-1,327797,136566,7600,7600,7600,7600,
-1,-1,-1,-1,-1,154289,4735,4735,4735,4735,4735,
-1,-1,-1,-1,238908,47678,4540,4540,4540,4540,4540,
-1,-1,-1,-1,-1,243338,52108,6804,6804,6804,6804,
-1,-1,-1,-1,-1,163301,5308,5308,5308,5308,5308,
-1,-1,-1,-1,35,35,35,35,35,35,35,
-1,-1,-1,-1,1769,1769,1769,1769,1769,1769,1769,
-1,-1,-1,-1,-1,1685,1685,1685,1685,1685,1685,
-1,-1,-1,-1,-1,2030,2030,2030,2030,2030,2030,
-1,-1,-1,-1,-1,2056,2056,2056,2056,2056,2056,
-1,-1,-1,-1,-1,-1,35,35,35,35,35,
-1,-1,-1,-1,-1,-1,-1,-1,5308,5308,5308,
-1,-1,-1,-1,-1,-1,-1,-1,-1,6804,6804,
-1,-1,-1,-1,-1,356233,165002,7579,7579,7579,7579,
-1,-1,-1,-1,-1,182624,4713,4713,4713,4713,4713,
-1,-1,-1,-1,-1,75592,4514,4514,4514,4514,4514,
-1,-1,-1,-1,-1,271774,80543,6783,6783,6783,6783,
-1,-1,-1,-1,-1,191737,5287,5287,5287,5287,5287,
-1,-1,-1,-1,4,4,4,4,4,4,4,
-1,-1,-1,-1,1790,1790,1790,1790,1790,1790,1790,
-1,-1,-1,-1,-1,1706,1706,1706,1706,1706,1706,
-1,-1,-1,-1,-1,2051,2051,2051,2051,2051,2051,
-1,-1,-1,-1,-1,2077,2077,2077,2077,2077,2077,
-1,-1,-1,-1,-1,-1,4,4,4,4,4,
-1,-1,-1,-1,-1,-1,-1,-1,5287,5287,5287,
-1,-1,-1,-1,-1,-1,-1,-1,-1,6783,6783,
-1,-1,-1,-1,246320,55090,4670,4670,4670,4670,4670,
-1,-1,-1,-1,-1,198690,7459,4714,4714,4714,4714,
-1,-1,-1,-1,-1,91579,4514,4514,4514,4514,4514,
-1,-1,-1,-1,236086,44856,4556,4556,4556,4556,4556,
-1,-1,-1,-1,-1,137055,4639,4639,4639,4639,4639,
-1,-1,-1,-1,0,0,0,0,0,0,0,
-1,-1,-1,-1,1761,1761,1761,1761,1761,1761,1761,
-1,-1,-1,-1,-1,1661,1661,1661,1661,1661,1661,
-1,-1,-1,-1,-1,2006,2006,2006,2006,2006,2006,
-1,-1,-1,-1,-1,2008,2008,2008,2008,2008,2008,
-1,-1,-1,-1,-1,-1,0,0,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,4639,4639,4639,
-1,-1,-1,-1,-1,-1,-1,-1,-1,4556,4556,
-1,-1,-1,-1,-1,-1,59129,2557,2557,2557,2557,
-1,-1,-1,-1,-1,-1,-1,2083,2083,2083,2083,
-1,-1,-1,-1,-1,-1,1453,1453,1453,1453,1453,
-1,-1,-1,-1,-1,-1,1761,1761,1761,1761,1761,
-1,-1,-1,-1,-1,-1,265,265,265,265,265,
-1,-1,-1,-1,-1,-1,-1,220943,29712,4469,4469,
-1,-1,-1,-1,-1,-1,-1,363933,172703,6856,6856,
-1,-1,-1,-1,-1,-1,-1,-1,309326,118096,6773,
-1,-1,-1,-1,-1,-1,-1,-1,264937,73706,7117,
-1,-1,-1,-1,-1,-1,-1,416923,225693,34462,7143,
-1,-1,-1,-1,-1,-1,-1,91179,4469,4469,4469,
-1,-1,-1,-1,-1,-1,-1,-1,265,265,265,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1761,1761,
-1,-1,-1,-1,-1,-1,76233,2359,2359,2359,2359,
-1,-1,-1,-1,-1,-1,-1,2102,2102,2102,2102,
-1,-1,-1,-1,-1,-1,34452,1485,1485,1485,1485,
-1,-1,-1,-1,-1,-1,1563,1563,1563,1563,1563,
-1,-1,-1,-1,-1,-1,0,0,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,86971,4639,4639,
-1,-1,-1,-1,-1,-1,-1,-1,235529,44299,7077,
-1,-1,-1,-1,-1,-1,-1,-1,372153,180922,6994,
-1,-1,-1,-1,-1,-1,-1,-1,327763,136533,7338,
-1,-1,-1,-1,-1,-1,-1,-1,288519,97289,7365,
-1,-1,-1,-1,-1,-1,-1,148438,4639,4639,4639,
-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1563,1563,
-1,-1,-1,-1,-1,-1,-1,590,590,590,590,
-1,-1,-1,-1,-1,-1,-1,-1,573,573,573,
-1,-1,-1,-1,-1,-1,-1,47314,1112,1112,1112,
-1,-1,-1,-1,-1,-1,-1,24479,1372,1372,1372,
-1,-1,-1,-1,-1,-1,-1,-1,70399,2785,2785,
-1,-1,-1,-1,-1,-1,-1,-1,-1,121603,4466,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,394192,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,530815,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,486426,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,447181,
-1,-1,-1,-1,-1,-1,-1,-1,183070,4466,4466,
-1,-1,-1,-1,-1,-1,-1,-1,13485,2785,2785,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1372,1372,
-1,-1,-1,-1,-1,-1,-1,506,506,506,506,
-1,-1,-1,-1,-1,-1,-1,-1,588,588,588,
-1,-1,-1,-1,-1,-1,-1,-1,1023,1023,1023,
-1,-1,-1,-1,-1,-1,-1,33482,1027,1027,1027,
-1,-1,-1,-1,-1,-1,-1,-1,84664,2488,2488,
-1,-1,-1,-1,-1,-1,-1,-1,-1,149151,4291,
-1,-1,-1,-1,-1,-1,-1,-1,-1,140508,5287,
-1,-1,-1,-1,-1,-1,-1,-1,-1,267376,76146,
-1,-1,-1,-1,-1,-1,-1,-1,-1,239996,48766,
-1,-1,-1,-1,-1,-1,-1,-1,-1,199258,8028,
-1,-1,-1,-1,-1,-1,-1,-1,210618,19388,4291,
-1,-1,-1,-1,-1,-1,-1,-1,27750,2488,2488,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1027,1027,
-1,-1,-1,-1,-1,-1,-1,-1,517,517,517,
-1,-1,-1,-1,-1,-1,-1,-1,519,519,519,
-1,-1,-1,-1,-1,-1,-1,-1,1157,1157,1157,
-1,-1,-1,-1,-1,-1,-1,-1,1210,1210,1210,
-1,-1,-1,-1,-1,-1,-1,-1,-1,2670,2670,
-1,-1,-1,-1,-1,-1,-1,-1,-1,283727,92497,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,495382,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,548372,
-1,-1,-1,-1,-1,-1,-1,-1,-1,153964,4909,
-1,-1,-1,-1,-1,-1,-1,-1,114676,2670,2670,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1210,1210,
-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,85,85,85,
-1,-1,-1,-1,-1,-1,-1,-1,695,695,695,
-1,-1,-1,-1,-1,-1,-1,-1,873,873,873,
-1,-1,-1,-1,-1,-1,-1,-1,-1,2359,2359,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,106312,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,501332,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,554322,
-1,-1,-1,-1,-1,-1,-1,-1,-1,167779,4670,
-1,-1,-1,-1,-1,-1,-1,-1,120626,2359,2359,
-1,-1,-1,-1,-1,-1,-1,-1,-1,873,873,
-1,-1,-1,-1,-1,-1,-1,-1,85,85,85,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,638,638,638,
-1,-1,-1,-1,-1,-1,-1,-1,619,619,619,
-1,-1,-1,-1,-1,-1,-1,-1,-1,2102,2102,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,140638,
-1,-1,-1,-1,-1,-1,-1,-1,-1,336845,145615,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,272505,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,245324,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,204529,
-1,-1,-1,-1,-1,-1,-1,-1,-1,202104,10874,
-1,-1,-1,-1,-1,-1,-1,-1,122189,2102,2102,
-1,-1,-1,-1,-1,-1,-1,-1,-1,619,619,
-1,-1,-1,-1,-1,-1,-1,-1,392,392,392,
-1,-1,-1,-1,-1,-1,-1,-1,-1,307,307,
-1,-1,-1,-1,-1,-1,-1,-1,19108,478,478,
-1,-1,-1,-1,-1,-1,-1,-1,443,443,443,
-1,-1,-1,-1,-1,-1,-1,-1,-1,9511,1851,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,204742,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,219437,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,319244,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,278389,
-1,-1,-1,-1,-1,-1,-1,-1,-1,266209,74978,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1851,1851,
-1,-1,-1,-1,-1,-1,-1,-1,-1,443,443,
-1,-1,-1,-1,-1,-1,-1,-1,31723,698,698,
-1,-1,-1,-1,-1,-1,-1,-1,-1,638,638,
-1,-1,-1,-1,-1,-1,-1,-1,-1,25,25,
-1,-1,-1,-1,-1,-1,-1,-1,22,22,22,
-1,-1,-1,-1,-1,-1,-1,-1,-1,10929,1478,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,212594,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,241663,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,341295,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,300301,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,82830,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1478,1478,
-1,-1,-1,-1,-1,-1,-1,-1,-1,22,22,
-1,-1,-1,-1,-1,-1,-1,-1,-1,873,873,
-1,-1,-1,-1,-1,-1,-1,-1,-1,619,619,
-1,-1,-1,-1,-1,-1,-1,-1,-1,42,42,
-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,38443,1563,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,232672,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,102908,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1563,1563,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2359,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,66413,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1485,
-1,-1,-1,-1,-1,-1,-1,-1,-1,62347,1563,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,219011,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1563,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10183,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97444,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1453,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1761,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,265,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,233464,
-1,-1,-1,-1,-1,-1,-1,-1,-1,265,265,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19063
]);
array[POPORTS3,PIPORTS,WEEKS] of int: directCostArr3;
directCostArr3 = array3d(POPORTS3,PIPORTS,WEEKS,[
-1,-1,191683,4670,4670,4670,4670,4670,4670,4670,4670,
-1,-1,-1,144052,4714,4714,4714,4714,4714,4714,4714,
-1,-1,228172,36941,4514,4514,4514,4514,4514,4514,4514,
-1,-1,181449,4556,4556,4556,4556,4556,4556,4556,4556,
-1,-1,-1,82418,4639,4639,4639,4639,4639,4639,4639,
-1,-1,-1,-1,0,0,0,0,0,0,0,
-1,-1,-1,-1,1761,1761,1761,1761,1761,1761,1761,
-1,-1,-1,-1,-1,1661,1661,1661,1661,1661,1661,
-1,-1,-1,-1,-1,2006,2006,2006,2006,2006,2006,
-1,-1,-1,-1,-1,2008,2008,2008,2008,2008,2008,
-1,-1,-1,-1,-1,-1,0,0,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,4639,4639,4639,
-1,-1,-1,-1,-1,-1,-1,-1,-1,4556,4556,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,92987,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,87985,4523,4523,4523,4523,4523,4523,4523,
-1,-1,-1,232913,41682,4579,4579,4579,4579,4579,4579,
-1,-1,-1,137967,4491,4491,4491,4491,4491,4491,4491,
-1,-1,-1,91004,4530,4530,4530,4530,4530,4530,4530,
-1,-1,-1,211585,20354,4874,4874,4874,4874,4874,4874,
-1,-1,-1,-1,626,626,626,626,626,626,626,
-1,-1,-1,-1,1449,1449,1449,1449,1449,1449,1449,
-1,-1,-1,-1,-1,1307,1307,1307,1307,1307,1307,
-1,-1,-1,-1,-1,1754,1754,1754,1754,1754,1754,
-1,-1,-1,-1,-1,1761,1761,1761,1761,1761,1761,
-1,-1,-1,-1,-1,-1,626,626,626,626,626,
-1,-1,-1,-1,-1,-1,-1,-1,4874,4874,4874,
-1,-1,-1,-1,-1,-1,-1,-1,-1,4530,4530,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,395119,203889,12659,8447,8447,8447,8447,
-1,-1,-1,-1,116111,4614,4614,4614,4614,4614,4614,
-1,-1,-1,212908,21678,4531,4531,4531,4531,4531,4531,
-1,-1,-1,-1,310661,119430,7651,7651,7651,7651,7651,
-1,-1,-1,-1,230623,39393,6155,6155,6155,6155,6155,
-1,-1,-1,-1,649,649,649,649,649,649,649,
-1,-1,-1,-1,1614,1614,1614,1614,1614,1614,1614,
-1,-1,-1,-1,-1,1526,1526,1526,1526,1526,1526,
-1,-1,-1,-1,-1,1908,1908,1908,1908,1908,1908,
-1,-1,-1,-1,-1,1924,1924,1924,1924,1924,1924,
-1,-1,-1,-1,-1,-1,649,649,649,649,649,
-1,-1,-1,-1,-1,-1,-1,-1,6155,6155,6155,
-1,-1,-1,-1,-1,-1,-1,-1,-1,7651,7651,
-1,-1,-1,191711,4545,4545,4545,4545,4545,4545,4545,
-1,-1,-1,-1,145460,4601,4601,4601,4601,4601,4601,
-1,-1,-1,242204,50973,4518,4518,4518,4518,4518,4518,
-1,-1,-1,195231,4557,4557,4557,4557,4557,4557,4557,
-1,-1,-1,-1,125247,4907,4907,4907,4907,4907,4907,
-1,-1,-1,-1,647,647,647,647,647,647,647,
-1,-1,-1,-1,1417,1417,1417,1417,1417,1417,1417,
-1,-1,-1,-1,-1,1273,1273,1273,1273,1273,1273,
-1,-1,-1,-1,-1,1723,1723,1723,1723,1723,1723,
-1,-1,-1,-1,-1,1730,1730,1730,1730,1730,1730,
-1,-1,-1,-1,-1,-1,647,647,647,647,647,
-1,-1,-1,-1,-1,-1,-1,-1,4907,4907,4907,
-1,-1,-1,-1,-1,-1,-1,-1,-1,4557,4557,
-1,-1,-1,254621,63391,4475,4475,4475,4475,4475,4475,
-1,-1,-1,-1,208745,17515,4535,4535,4535,4535,4535,
-1,-1,-1,-1,118175,4487,4487,4487,4487,4487,4487,
-1,-1,-1,262325,71095,4525,4525,4525,4525,4525,4525,
-1,-1,-1,-1,201303,10072,4957,4957,4957,4957,4957,
-1,-1,-1,-1,845,845,845,845,845,845,845,
-1,-1,-1,-1,1393,1393,1393,1393,1393,1393,1393,
-1,-1,-1,-1,-1,1236,1236,1236,1236,1236,1236,
-1,-1,-1,-1,-1,1713,1713,1713,1713,1713,1713,
-1,-1,-1,-1,-1,1721,1721,1721,1721,1721,1721,
-1,-1,-1,-1,-1,-1,845,845,845,845,845,
-1,-1,-1,-1,-1,-1,-1,-1,4957,4957,4957,
-1,-1,-1,-1,-1,-1,-1,-1,-1,4525,4525,
-1,-1,-1,-1,117863,4338,4338,4338,4338,4338,4338,
-1,-1,-1,-1,-1,72155,4399,4399,4399,4399,4399,
-1,-1,-1,-1,174856,4370,4370,4370,4370,4370,4370,
-1,-1,-1,-1,127709,4407,4407,4407,4407,4407,4407,
-1,-1,-1,-1,263775,72545,4893,4893,4893,4893,4893,
-1,-1,-1,-1,963,963,963,963,963,963,963,
-1,-1,-1,-1,1492,1492,1492,1492,1492,1492,1492,
-1,-1,-1,-1,-1,1329,1329,1329,1329,1329,1329,
-1,-1,-1,-1,-1,1818,1818,1818,1818,1818,1818,
-1,-1,-1,-1,-1,1827,1827,1827,1827,1827,1827,
-1,-1,-1,-1,-1,-1,963,963,963,963,963,
-1,-1,-1,-1,-1,-1,-1,-1,4893,4893,4893,
-1,-1,-1,-1,-1,-1,-1,-1,-1,4407,4407,
-1,-1,-1,-1,-1,502256,311026,119796,8814,8814,8814,
-1,-1,-1,-1,-1,159129,4393,4393,4393,4393,4393,
-1,-1,-1,-1,-1,70775,4365,4365,4365,4365,4365,
-1,-1,-1,-1,-1,417798,226567,35337,8018,8018,8018,
-1,-1,-1,-1,-1,337760,146530,6522,6522,6522,6522,
-1,-1,-1,-1,972,972,972,972,972,972,972,
-1,-1,-1,-1,1987,1987,1987,1987,1987,1987,1987,
-1,-1,-1,-1,-1,1830,1830,1830,1830,1830,1830,
-1,-1,-1,-1,-1,2273,2273,2273,2273,2273,2273,
-1,-1,-1,-1,-1,2286,2286,2286,2286,2286,2286,
-1,-1,-1,-1,-1,-1,972,972,972,972,972,
-1,-1,-1,-1,-1,-1,-1,-1,6522,6522,6522,
-1,-1,-1,-1,-1,-1,-1,-1,-1,8018,8018,
-1,-1,-1,-1,-1,85851,4545,4545,4545,4545,4545,
-1,-1,-1,-1,-1,230831,39600,4601,4601,4601,4601,
-1,-1,-1,-1,-1,136344,4518,4518,4518,4518,4518,
-1,-1,-1,-1,-1,89372,4557,4557,4557,4557,4557,
-1,-1,-1,-1,-1,210618,19387,4907,4907,4907,4907,
-1,-1,-1,-1,647,647,647,647,647,647,647,
-1,-1,-1,-1,1417,1417,1417,1417,1417,1417,1417,
-1,-1,-1,-1,-1,1273,1273,1273,1273,1273,1273,
-1,-1,-1,-1,-1,1723,1723,1723,1723,1723,1723,
-1,-1,-1,-1,-1,1730,1730,1730,1730,1730,1730,
-1,-1,-1,-1,-1,-1,647,647,647,647,647,
-1,-1,-1,-1,-1,-1,-1,-1,4907,4907,4907,
-1,-1,-1,-1,-1,-1,-1,-1,-1,4557,4557,
-1,-1,-1,-1,-1,-1,327797,136566,7600,7600,7600,
-1,-1,-1,-1,-1,-1,154289,4735,4735,4735,4735,
-1,-1,-1,-1,-1,238908,47678,4540,4540,4540,4540,
-1,-1,-1,-1,-1,-1,243338,52108,6804,6804,6804,
-1,-1,-1,-1,-1,-1,163301,5308,5308,5308,5308,
-1,-1,-1,-1,-1,35,35,35,35,35,35,
-1,-1,-1,-1,101823,1769,1769,1769,1769,1769,1769,
-1,-1,-1,-1,-1,47216,1685,1685,1685,1685,1685,
-1,-1,-1,-1,-1,2827,2030,2030,2030,2030,2030,
-1,-1,-1,-1,-1,2056,2056,2056,2056,2056,2056,
-1,-1,-1,-1,-1,-1,35,35,35,35,35,
-1,-1,-1,-1,-1,-1,-1,-1,5308,5308,5308,
-1,-1,-1,-1,-1,-1,-1,-1,-1,6804,6804,
-1,-1,-1,-1,-1,-1,356233,165002,7579,7579,7579,
-1,-1,-1,-1,-1,-1,182624,4713,4713,4713,4713,
-1,-1,-1,-1,-1,-1,75592,4514,4514,4514,4514,
-1,-1,-1,-1,-1,-1,271774,80543,6783,6783,6783,
-1,-1,-1,-1,-1,-1,191737,5287,5287,5287,5287,
-1,-1,-1,-1,-1,4,4,4,4,4,4,
-1,-1,-1,-1,-1,1790,1790,1790,1790,1790,1790,
-1,-1,-1,-1,-1,80248,1706,1706,1706,1706,1706,
-1,-1,-1,-1,-1,35858,2051,2051,2051,2051,2051,
-1,-1,-1,-1,-1,2077,2077,2077,2077,2077,2077,
-1,-1,-1,-1,-1,-1,4,4,4,4,4,
-1,-1,-1,-1,-1,-1,-1,-1,5287,5287,5287,
-1,-1,-1,-1,-1,-1,-1,-1,-1,6783,6783,
-1,-1,-1,-1,-1,246320,55090,4670,4670,4670,4670,
-1,-1,-1,-1,-1,-1,198690,7459,4714,4714,4714,
-1,-1,-1,-1,-1,-1,91579,4514,4514,4514,4514,
-1,-1,-1,-1,-1,236086,44856,4556,4556,4556,4556,
-1,-1,-1,-1,-1,-1,137055,4639,4639,4639,4639,
-1,-1,-1,-1,-1,0,0,0,0,0,0,
-1,-1,-1,-1,-1,1761,1761,1761,1761,1761,1761,
-1,-1,-1,-1,-1,91210,1661,1661,1661,1661,1661,
-1,-1,-1,-1,-1,46854,2006,2006,2006,2006,2006,
-1,-1,-1,-1,-1,4998,2008,2008,2008,2008,2008,
-1,-1,-1,-1,-1,-1,0,0,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,4639,4639,4639,
-1,-1,-1,-1,-1,-1,-1,-1,-1,4556,4556,
-1,-1,-1,-1,-1,-1,-1,59129,2557,2557,2557,
-1,-1,-1,-1,-1,-1,-1,-1,2083,2083,2083,
-1,-1,-1,-1,-1,-1,-1,1453,1453,1453,1453,
-1,-1,-1,-1,-1,-1,-1,1761,1761,1761,1761,
-1,-1,-1,-1,-1,-1,-1,265,265,265,265,
-1,-1,-1,-1,-1,-1,-1,-1,220943,29712,4469,
-1,-1,-1,-1,-1,-1,-1,-1,363933,172703,6856,
-1,-1,-1,-1,-1,-1,-1,-1,-1,309326,118096,
-1,-1,-1,-1,-1,-1,-1,-1,-1,264937,73706,
-1,-1,-1,-1,-1,-1,-1,-1,416923,225693,34462,
-1,-1,-1,-1,-1,-1,-1,-1,91179,4469,4469,
-1,-1,-1,-1,-1,-1,-1,-1,265,265,265,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1761,1761,
-1,-1,-1,-1,-1,-1,-1,76233,2359,2359,2359,
-1,-1,-1,-1,-1,-1,-1,-1,2102,2102,2102,
-1,-1,-1,-1,-1,-1,-1,34452,1485,1485,1485,
-1,-1,-1,-1,-1,-1,-1,1563,1563,1563,1563,
-1,-1,-1,-1,-1,-1,-1,0,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,86971,4639,
-1,-1,-1,-1,-1,-1,-1,-1,-1,235529,44299,
-1,-1,-1,-1,-1,-1,-1,-1,-1,372153,180922,
-1,-1,-1,-1,-1,-1,-1,-1,-1,327763,136533,
-1,-1,-1,-1,-1,-1,-1,-1,-1,288519,97289,
-1,-1,-1,-1,-1,-1,-1,-1,148438,4639,4639,
-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1563,1563,
-1,-1,-1,-1,-1,-1,-1,-1,590,590,590,
-1,-1,-1,-1,-1,-1,-1,-1,-1,573,573,
-1,-1,-1,-1,-1,-1,-1,-1,47314,1112,1112,
-1,-1,-1,-1,-1,-1,-1,-1,24479,1372,1372,
-1,-1,-1,-1,-1,-1,-1,-1,-1,70399,2785,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,121603,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,183070,4466,
-1,-1,-1,-1,-1,-1,-1,-1,-1,13485,2785,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1372,1372,
-1,-1,-1,-1,-1,-1,-1,-1,506,506,506,
-1,-1,-1,-1,-1,-1,-1,-1,-1,588,588,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1023,1023,
-1,-1,-1,-1,-1,-1,-1,-1,33482,1027,1027,
-1,-1,-1,-1,-1,-1,-1,-1,-1,84664,2488,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,149151,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,140508,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,267376,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,239996,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,199258,
-1,-1,-1,-1,-1,-1,-1,-1,-1,210618,19388,
-1,-1,-1,-1,-1,-1,-1,-1,-1,27750,2488,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1027,1027,
-1,-1,-1,-1,-1,-1,-1,-1,-1,517,517,
-1,-1,-1,-1,-1,-1,-1,-1,-1,519,519,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1157,1157,
-1,-1,-1,-1,-1,-1,-1,-1,-1,1210,1210,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2670,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,283727,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,153964,
-1,-1,-1,-1,-1,-1,-1,-1,-1,114676,2670,
-1,-1,-1,-1,-1,-1,-1,-1,-1,22724,1210,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,85,85,
-1,-1,-1,-1,-1,-1,-1,-1,-1,695,695,
-1,-1,-1,-1,-1,-1,-1,-1,-1,873,873,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2359,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,167779,
-1,-1,-1,-1,-1,-1,-1,-1,-1,120626,2359,
-1,-1,-1,-1,-1,-1,-1,-1,-1,25801,873,
-1,-1,-1,-1,-1,-1,-1,-1,-1,85,85,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,638,638,
-1,-1,-1,-1,-1,-1,-1,-1,-1,619,619,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2102,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,336845,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,202104,
-1,-1,-1,-1,-1,-1,-1,-1,-1,122189,2102,
-1,-1,-1,-1,-1,-1,-1,-1,-1,27713,619,
-1,-1,-1,-1,-1,-1,-1,-1,-1,392,392,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,307,
-1,-1,-1,-1,-1,-1,-1,-1,-1,19108,478,
-1,-1,-1,-1,-1,-1,-1,-1,-1,443,443,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9511,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,266209,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1851,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,443,
-1,-1,-1,-1,-1,-1,-1,-1,-1,31723,698,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,638,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,
-1,-1,-1,-1,-1,-1,-1,-1,-1,22,22,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10929,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1478,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,873,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,619,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,
-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38443,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1563,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62347,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,265,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
]);
array[POPORTS4,PIPORTS,WEEKS] of int: directCostArr4;
directCostArr4 = array3d(POPORTS4,PIPORTS,WEEKS,[
-1,-1,-1,443068,251838,60607,9043,9043,9043,9043,9043,
-1,-1,-1,-1,345148,153918,8625,8625,8625,8625,8625,
-1,-1,-1,517266,326036,134806,9233,9233,9233,9233,9233,
-1,-1,-1,516226,324996,133766,9693,9693,9693,9693,9693,
-1,-1,-1,-1,555942,364712,173482,11049,11049,11049,11049,
-1,-1,-1,-1,125864,6562,6562,6562,6562,6562,6562,
-1,-1,-1,-1,513629,322399,131168,11194,11194,11194,11194,
-1,-1,-1,-1,-1,483147,291917,100687,11332,11332,11332,
-1,-1,-1,-1,-1,342717,151487,10796,10796,10796,10796,
-1,-1,-1,-1,-1,298303,107073,10774,10774,10774,10774,
-1,-1,-1,-1,-1,-1,6562,6562,6562,6562,6562,
-1,-1,-1,-1,-1,-1,-1,-1,11049,11049,11049,
-1,-1,-1,-1,-1,-1,-1,-1,-1,9693,9693,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,443068,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,517266,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,516226,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,317094,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,378561,187331,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,377593,186362,9247,9247,9247,9247,9247,
-1,-1,-1,-1,487603,296372,105142,8982,8982,8982,8982,
-1,-1,-1,-1,468332,277101,85871,9588,9588,9588,9588,
-1,-1,-1,-1,454657,263427,72196,9933,9933,9933,9933,
-1,-1,-1,-1,-1,484034,292803,101573,11194,11194,11194,
-1,-1,-1,-1,234772,43541,6611,6611,6611,6611,6611,
-1,-1,-1,-1,592398,401167,209937,18707,10966,10966,10966,
-1,-1,-1,-1,-1,561916,370686,179455,11104,11104,11104,
-1,-1,-1,-1,-1,421486,230255,39025,10568,10568,10568,
-1,-1,-1,-1,-1,377072,185841,10547,10547,10547,10547,
-1,-1,-1,-1,-1,-1,6611,6611,6611,6611,6611,
-1,-1,-1,-1,-1,-1,-1,-1,11194,11194,11194,
-1,-1,-1,-1,-1,-1,-1,-1,-1,9933,9933,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,296239,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
]);
array[POPORTS5,PIPORTS,WEEKS] of int: directCostArr5;
directCostArr5 = array3d(POPORTS5,PIPORTS,WEEKS,[
-1,-1,-1,-1,443068,251838,60607,9043,9043,9043,9043,
-1,-1,-1,-1,-1,345148,153918,8625,8625,8625,8625,
-1,-1,-1,-1,517266,326036,134806,9233,9233,9233,9233,
-1,-1,-1,-1,516226,324996,133766,9693,9693,9693,9693,
-1,-1,-1,-1,-1,555942,364712,173482,11049,11049,11049,
-1,-1,-1,-1,317094,125864,6562,6562,6562,6562,6562,
-1,-1,-1,-1,-1,513629,322399,131168,11194,11194,11194,
-1,-1,-1,-1,-1,-1,483147,291917,100687,11332,11332,
-1,-1,-1,-1,-1,533947,342717,151487,10796,10796,10796,
-1,-1,-1,-1,-1,489534,298303,107073,10774,10774,10774,
-1,-1,-1,-1,-1,-1,6562,6562,6562,6562,6562,
-1,-1,-1,-1,-1,-1,-1,-1,11049,11049,11049,
-1,-1,-1,-1,-1,-1,-1,-1,-1,9693,9693,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,378561,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,377593,186362,9247,9247,9247,9247,
-1,-1,-1,-1,-1,487603,296372,105142,8982,8982,8982,
-1,-1,-1,-1,-1,468332,277101,85871,9588,9588,9588,
-1,-1,-1,-1,-1,454657,263427,72196,9933,9933,9933,
-1,-1,-1,-1,-1,-1,484034,292803,101573,11194,11194,
-1,-1,-1,-1,-1,234772,43541,6611,6611,6611,6611,
-1,-1,-1,-1,-1,592398,401167,209937,18707,10966,10966,
-1,-1,-1,-1,-1,-1,561916,370686,179455,11104,11104,
-1,-1,-1,-1,-1,612716,421486,230255,39025,10568,10568,
-1,-1,-1,-1,-1,568302,377072,185841,10547,10547,10547,
-1,-1,-1,-1,-1,-1,6611,6611,6611,6611,6611,
-1,-1,-1,-1,-1,-1,-1,-1,44659,11194,11194,
-1,-1,-1,-1,-1,-1,-1,-1,-1,9933,9933
]);
% Phase in constraints
constraint alldifferent(piWeek);
constraint max(piWeek) - min(piWeek) = (vv - 1);
int: maxCost = 500000;
constraint sum(directCost) + sum(sosActSavings) + sum(sosActBCost) + sum(sosActACost) < maxCost;
% Constant assignments
vv = 6;
ww = 11;
pip = 13;
poPorts0 = 16;
poPorts1 = 15;
poPorts2 = 27;
poPorts3 = 24;
poPorts4 = 3;
poPorts5 = 2;
int: objectiveMax = ub(66 * (piTimes[piPort,piWeek[1]] - poTimes0[poAct0]) + 66 * (piTimes[piPort,piWeek[2]] - poTimes1[poAct1]) + 66 * (piTimes[piPort,piWeek[3]] - poTimes2[poAct2]) + 66 * (piTimes[piPort,piWeek[4]] - poTimes3[poAct3]) + 66 * (piTimes[piPort,piWeek[5]] - poTimes4[poAct4]) + 66 * (piTimes[piPort,piWeek[6]] - poTimes5[poAct5]) + sum(directCost) - sum(sosActSavings) + sum(sosActBCost) + sum(sosActACost));
var 0..objectiveMax: objective;
constraint objective = 66 * (piTimes[piPort,piWeek[1]] - poTimes0[poAct0]) + 66 * (piTimes[piPort,piWeek[2]] - poTimes1[poAct1]) + 66 * (piTimes[piPort,piWeek[3]] - poTimes2[poAct2]) + 66 * (piTimes[piPort,piWeek[4]] - poTimes3[poAct3]) + 66 * (piTimes[piPort,piWeek[5]] - poTimes4[poAct4]) + 66 * (piTimes[piPort,piWeek[6]] - poTimes5[poAct5]) + sum(directCost) - sum(sosActSavings) + sum(sosActBCost) + sum(sosActACost);
solve
:: seq_search([
int_search(reposType, first_fail, indomain_max, complete),
int_search(
[poAct0, poAct1, poAct2, poAct3, poAct4, poAct5, piPort] ++ piWeek ++ sosAct ++ sosActSavings ++
directCost ++ sosActACost ++ sosActBCost,
first_fail, indomain_split, complete
)
])
minimize objective;
output [
"poAct0 = ", show(poAct0), ";\n",
"poAct1 = ", show(poAct1), ";\n",
"poAct2 = ", show(poAct2), ";\n",
"poAct3 = ", show(poAct3), ";\n",
"poAct4 = ", show(poAct4), ";\n",
"poAct5 = ", show(poAct5), ";\n",
"piPort = ", show(piPort), ";\n",
"piWeek = ", show(piWeek), ";\n",
"reposType = ", show(reposType), ";\n",
"sosAct = ", show(sosAct), ";\n",
"sos = ", show(sos), ";\n",
"sosActSavings = ", show(sosActSavings), ";\n",
"directCost = ", show(directCost), ";\n",
"sosActBCost = ", show(sosActBCost), ";\n",
"sosActACost = ", show(sosActACost), ";\n",
"objective = ", show(objective), ";\n"
];
% Hotel costs: 66.6667 66.6667 66.6667 66.6667 66.6667 66.6667
%output ["piWeeks: ", show(piWeek), "; piPort: ", show(piPort),"; poActs: [",show(poAct0),",",show(poAct1),",",show(poAct2),",",show(poAct3),",",show(poAct4),",",show(poAct5),"] reposType: ", show(reposType), "; directCost(sum): ", show(sum(directCost)), "; hotelCost: ", show(66 * (piTimes[piPort,piWeek[1]] - poTimes0[poAct0]) + 66 * (piTimes[piPort,piWeek[2]] - poTimes1[poAct1]) + 66 * (piTimes[piPort,piWeek[3]] - poTimes2[poAct2]) + 66 * (piTimes[piPort,piWeek[4]] - poTimes3[poAct3]) + 66 * (piTimes[piPort,piWeek[5]] - poTimes4[poAct4]) + 66 * (piTimes[piPort,piWeek[6]] - poTimes5[poAct5])), "; sosAct: ", show(sosAct), "; sosActSavings(sum): ", show(sum(sosActSavings)),"; sosActBCost(sum): ", show(sum(sosActBCost)), "; sosActACost(sum): ", show(sum(sosActACost)), "; total objective: ", show(66 * (piTimes[piPort,piWeek[1]] - poTimes0[poAct0]) + 66 * (piTimes[piPort,piWeek[2]] - poTimes1[poAct1]) + 66 * (piTimes[piPort,piWeek[3]] - poTimes2[poAct2]) + 66 * (piTimes[piPort,piWeek[4]] - poTimes3[poAct3]) + 66 * (piTimes[piPort,piWeek[5]] - poTimes4[poAct4]) + 66 * (piTimes[piPort,piWeek[6]] - poTimes5[poAct5]) + sum(directCost) - sum(sosActSavings) + sum(sosActBCost) + sum(sosActACost)), "\n"] ++ [
% "objective = ", show(objective), ";\n"
%]