File size: 254,041 Bytes
aff484f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
task_name,problem_type,instruction,instance,solution,obj,instance_variant,solution_variant,context_index,input_format,input_index_base
CSP,CSP,"Recently the shop has been juggling complicated orders and it’s become a small puzzle: how to split each bolt of fabric into the required panel sizes. The task is choosing which cuts to make on each bolt so every customer's quantity is produced and each bolt’s length is respected. The nicer solution is the one that lets the shop use fewer bolts overall β€” just count bolts used to see which plan wins. Each panel size must be produced in the exact quantity requested, and you can’t exceed the length on any bolt. The full list of sizes and quantities appears below.

{
  ""bolt_length"": 150.0,
  ""items"": [
    {
      ""panel_type_id"": ""A"",
      ""panel_length"": 73,
      ""quantity_required"": 1
    },
    {
      ""panel_type_id"": ""B"",
      ""panel_length"": 34,
      ""quantity_required"": 2
    },
    {
      ""panel_type_id"": ""C"",
      ""panel_length"": 69,
      ""quantity_required"": 2
    },
    {
      ""panel_type_id"": ""D"",
      ""panel_length"": 41,
      ""quantity_required"": 2
    },
    {
      ""panel_type_id"": ""E"",
      ""panel_length"": 97,
      ""quantity_required"": 2
    },
    {
      ""panel_type_id"": ""F"",
      ""panel_length"": 30,
      ""quantity_required"": 1
    },
    {
      ""panel_type_id"": ""G"",
      ""panel_length"": 76,
      ""quantity_required"": 2
    },
    {
      ""panel_type_id"": ""H"",
      ""panel_length"": 85,
      ""quantity_required"": 1
    },
    {
      ""panel_type_id"": ""I"",
      ""panel_length"": 90,
      ""quantity_required"": 3
    },
    {
      ""panel_type_id"": ""J"",
      ""panel_length"": 24,
      ""quantity_required"": 2
    },
    {
      ""panel_type_id"": ""K"",
      ""panel_length"": 53,
      ""quantity_required"": 2
    },
    {
      ""panel_type_id"": ""L"",
      ""panel_length"": 74,
      ""quantity_required"": 1
    },
    {
      ""panel_type_id"": ""M"",
      ""panel_length"": 83,
      ""quantity_required"": 1
    },
    {
      ""panel_type_id"": ""N"",
      ""panel_length"": 45,
      ""quantity_required"": 2
    },
    {
      ""panel_type_id"": ""O"",
      ""panel_length"": 64,
      ""quantity_required"": 5
    },
    {
      ""panel_type_id"": ""P"",
      ""panel_length"": 25,
      ""quantity_required"": 1
    },
    {
      ""panel_type_id"": ""Q"",
      ""panel_length"": 38,
      ""quantity_required"": 3
    },
    {
      ""panel_type_id"": ""R"",
      ""panel_length"": 42,
      ""quantity_required"": 2
    },
    {
      ""panel_type_id"": ""S"",
      ""panel_length"": 84,
      ""quantity_required"": 3
    },
    {
      ""panel_type_id"": ""T"",
      ""panel_length"": 20,
      ""quantity_required"": 1
    },
    {
      ""panel_type_id"": ""U"",
      ""panel_length"": 51,
      ""quantity_required"": 2
    },
    {
      ""panel_type_id"": ""V"",
      ""panel_length"": 29,
      ""quantity_required"": 4
    }
  ]
}

If you want to sketch a cutting plan for me to look at, a relaxed JSON layout like the one below works well β€” just a list of bolt patterns, each saying how many pieces of each panel type come from that bolt.

{
  ""solution"": [
    {""<patch_type_id>"": 2, ""<patch_type_id>"": 1},
    ...
  ]
}

Think of that as: ""solution"" is a list where each element is one bolt's cutting pattern. Inside each pattern object the placeholder keys (like <patch_type_id>) stand for a specific panel type and the numbers are how many pieces of that type are cut from that bolt. Super informal β€” it's just the shape I expect, not the final plan.

Please remember: when you provide the real plan, use the exact identifiers from the instance input β€” don't rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [73, 34, 69, 41, 97, 30, 76, 85, 90, 24, 53, 74, 83, 45, 64, 25, 38, 42, 84, 20, 51, 29], 'demands': [1, 2, 2, 2, 2, 1, 2, 1, 3, 2, 2, 1, 1, 2, 5, 1, 3, 2, 3, 1, 2, 4], 'solution_patterns': [{'14': 1, '18': 1}, {'14': 1, '18': 1}, {'12': 1, '16': 1, '21': 1}, {'9': 1, '17': 1, '18': 1}, {'8': 1, '21': 2}, {'8': 1, '16': 1, '19': 1}, {'7': 1, '14': 1}, {'6': 1, '11': 1}, {'4': 1, '10': 1}, {'4': 1, '10': 1}, {'3': 1, '13': 1, '14': 1}, {'3': 1, '13': 1, '14': 1}, {'2': 1, '17': 1, '21': 1}, {'2': 1, '5': 1, '20': 1}, {'1': 1, '9': 1, '16': 1, '20': 1}, {'1': 1, '8': 1, '15': 1}, {'0': 1, '6': 1}], 'obj': 17, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'14': 1, '18': 1}, {'14': 1, '18': 1}, {'12': 1, '16': 1, '21': 1}, {'9': 1, '17': 1, '18': 1}, {'8': 1, '21': 2}, {'8': 1, '16': 1, '19': 1}, {'7': 1, '14': 1}, {'6': 1, '11': 1}, {'4': 1, '10': 1}, {'4': 1, '10': 1}, {'3': 1, '13': 1, '14': 1}, {'3': 1, '13': 1, '14': 1}, {'2': 1, '17': 1, '21': 1}, {'2': 1, '5': 1, '20': 1}, {'1': 1, '9': 1, '16': 1, '20': 1}, {'1': 1, '8': 1, '15': 1}, {'0': 1, '6': 1}]",17,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 22, 'items': [{'item_id': 'A', 'width': 73, 'demand': 1}, {'item_id': 'B', 'width': 34, 'demand': 2}, {'item_id': 'C', 'width': 69, 'demand': 2}, {'item_id': 'D', 'width': 41, 'demand': 2}, {'item_id': 'E', 'width': 97, 'demand': 2}, {'item_id': 'F', 'width': 30, 'demand': 1}, {'item_id': 'G', 'width': 76, 'demand': 2}, {'item_id': 'H', 'width': 85, 'demand': 1}, {'item_id': 'I', 'width': 90, 'demand': 3}, {'item_id': 'J', 'width': 24, 'demand': 2}, {'item_id': 'K', 'width': 53, 'demand': 2}, {'item_id': 'L', 'width': 74, 'demand': 1}, {'item_id': 'M', 'width': 83, 'demand': 1}, {'item_id': 'N', 'width': 45, 'demand': 2}, {'item_id': 'O', 'width': 64, 'demand': 5}, {'item_id': 'P', 'width': 25, 'demand': 1}, {'item_id': 'Q', 'width': 38, 'demand': 3}, {'item_id': 'R', 'width': 42, 'demand': 2}, {'item_id': 'S', 'width': 84, 'demand': 3}, {'item_id': 'T', 'width': 20, 'demand': 1}, {'item_id': 'U', 'width': 51, 'demand': 2}, {'item_id': 'V', 'width': 29, 'demand': 4}]}","[{'O': 1, 'S': 1}, {'O': 1, 'S': 1}, {'M': 1, 'Q': 1, 'V': 1}, {'J': 1, 'R': 1, 'S': 1}, {'I': 1, 'V': 2}, {'I': 1, 'Q': 1, 'T': 1}, {'H': 1, 'O': 1}, {'G': 1, 'L': 1}, {'E': 1, 'K': 1}, {'E': 1, 'K': 1}, {'D': 1, 'N': 1, 'O': 1}, {'D': 1, 'N': 1, 'O': 1}, {'C': 1, 'R': 1, 'V': 1}, {'C': 1, 'F': 1, 'U': 1}, {'B': 1, 'J': 1, 'Q': 1, 'U': 1}, {'B': 1, 'I': 1, 'P': 1}, {'A': 1, 'G': 1}]",1,json,names
CSP,CSP,"There’s a busy day at the wallpaper shop where the cutter has to plan cuts from standard rolls to cover a bunch of wall orders. The decision is which combinations of strips to cut from each roll so all requested pieces are produced without wasteful use of extra rolls; the better the plan, the fewer rolls that need to be opened, which you can check simply by counting opened rolls. All requested strips have to be made in the right quantities and sizes, and no roll can be overcut. The concrete order details and roll length follow below.

Each roll has usable length 150.0, and the cutter must allocate the following strip requests:
Strip A: the cutter must make 7 strips of length 81.
Strip B: the cutter must make 3 strips of length 84.
Strip C: the cutter must make 3 strips of length 55.
Strip D: the cutter must make 1 strips of length 93.
Strip E: the cutter must make 3 strips of length 70.
Strip F: the cutter must make 1 strips of length 52.
Strip G: the cutter must make 4 strips of length 25.
Strip H: the cutter must make 6 strips of length 48.
Strip I: the cutter must make 2 strips of length 50.
Strip J: the cutter must make 2 strips of length 35.
Strip K: the cutter must make 2 strips of length 56.
Strip L: the cutter must make 2 strips of length 78.
Strip M: the cutter must make 6 strips of length 31.
Strip N: the cutter must make 3 strips of length 94.
Strip O: the cutter must make 4 strips of length 82.
Strip P: the cutter must make 4 strips of length 28.
Strip Q: the cutter must make 4 strips of length 59.
Strip R: the cutter must make 6 strips of length 73.
Strip S: the cutter must make 2 strips of length 66.
Strip T: the cutter must make 4 strips of length 77.
Strip U: the cutter must make 2 strips of length 68.
Strip V: the cutter must make 3 strips of length 24.
Strip W: the cutter must make 3 strips of length 69.
Strip X: the cutter must make 4 strips of length 30.
Strip Y: the cutter must make 3 strips of length 65.
The cutter should plan to minimize the number of rolls opened; count opened rolls to compare plans.

Oh, and when you send the cutting plan back, just follow this little JSON layout β€” nothing fancy, just the shape below so I can read it automatically:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Here’s what that sketch means in plain terms: ""solution"" is a list where each entry is one opened roll (one cutting pattern). Inside each entry you map the item identifiers (the placeholders shown as ""<item_id>"") to how many strips of that item you cut from that roll. Think of each object as a little checklist for a single roll: which strip types and how many of each you took out.

This JSON is just the expected shape β€” not the real plan itself. Also, please use the exact identifiers from the instance input with no renaming and no new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [81, 84, 55, 93, 70, 52, 25, 48, 50, 35, 56, 78, 31, 94, 82, 28, 59, 73, 66, 77, 68, 24, 69, 30, 65], 'demands': [7, 3, 3, 1, 3, 1, 4, 6, 2, 2, 2, 2, 6, 3, 4, 4, 4, 6, 2, 4, 2, 3, 3, 4, 3], 'solution_patterns': [{'17': 1, '19': 1}, {'17': 1, '19': 1}, {'17': 1, '19': 1}, {'17': 1, '19': 1}, {'14': 1, '24': 1}, {'14': 1, '24': 1}, {'14': 1, '20': 1}, {'14': 1, '20': 1}, {'13': 1, '15': 2}, {'12': 1, '16': 2}, {'12': 1, '16': 2}, {'10': 1, '13': 1}, {'7': 1, '15': 1, '17': 1}, {'7': 1, '15': 1, '17': 1}, {'7': 1, '11': 1, '21': 1}, {'7': 1, '11': 1, '21': 1}, {'7': 2, '21': 1, '23': 1}, {'6': 2, '8': 2}, {'5': 1, '6': 1, '17': 1}, {'4': 1, '8': 1, '23': 1}, {'3': 1, '10': 1}, {'2': 1, '13': 1}, {'2': 1, '4': 1, '6': 1}, {'2': 1, '4': 1, '6': 1}, {'1': 1, '18': 1}, {'1': 1, '12': 2}, {'1': 1, '12': 2}, {'0': 1, '24': 1}, {'0': 1, '22': 1}, {'0': 1, '22': 1}, {'0': 1, '22': 1}, {'0': 1, '18': 1}, {'0': 1, '9': 1, '23': 1}, {'0': 1, '9': 1, '23': 1}], 'obj': 34, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'17': 1, '19': 1}, {'17': 1, '19': 1}, {'17': 1, '19': 1}, {'17': 1, '19': 1}, {'14': 1, '24': 1}, {'14': 1, '24': 1}, {'14': 1, '20': 1}, {'14': 1, '20': 1}, {'13': 1, '15': 2}, {'12': 1, '16': 2}, {'12': 1, '16': 2}, {'10': 1, '13': 1}, {'7': 1, '15': 1, '17': 1}, {'7': 1, '15': 1, '17': 1}, {'7': 1, '11': 1, '21': 1}, {'7': 1, '11': 1, '21': 1}, {'7': 2, '21': 1, '23': 1}, {'6': 2, '8': 2}, {'5': 1, '6': 1, '17': 1}, {'4': 1, '8': 1, '23': 1}, {'3': 1, '10': 1}, {'2': 1, '13': 1}, {'2': 1, '4': 1, '6': 1}, {'2': 1, '4': 1, '6': 1}, {'1': 1, '18': 1}, {'1': 1, '12': 2}, {'1': 1, '12': 2}, {'0': 1, '24': 1}, {'0': 1, '22': 1}, {'0': 1, '22': 1}, {'0': 1, '22': 1}, {'0': 1, '18': 1}, {'0': 1, '9': 1, '23': 1}, {'0': 1, '9': 1, '23': 1}]",34,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 25, 'items': [{'item_id': 'A', 'width': 81, 'demand': 7}, {'item_id': 'B', 'width': 84, 'demand': 3}, {'item_id': 'C', 'width': 55, 'demand': 3}, {'item_id': 'D', 'width': 93, 'demand': 1}, {'item_id': 'E', 'width': 70, 'demand': 3}, {'item_id': 'F', 'width': 52, 'demand': 1}, {'item_id': 'G', 'width': 25, 'demand': 4}, {'item_id': 'H', 'width': 48, 'demand': 6}, {'item_id': 'I', 'width': 50, 'demand': 2}, {'item_id': 'J', 'width': 35, 'demand': 2}, {'item_id': 'K', 'width': 56, 'demand': 2}, {'item_id': 'L', 'width': 78, 'demand': 2}, {'item_id': 'M', 'width': 31, 'demand': 6}, {'item_id': 'N', 'width': 94, 'demand': 3}, {'item_id': 'O', 'width': 82, 'demand': 4}, {'item_id': 'P', 'width': 28, 'demand': 4}, {'item_id': 'Q', 'width': 59, 'demand': 4}, {'item_id': 'R', 'width': 73, 'demand': 6}, {'item_id': 'S', 'width': 66, 'demand': 2}, {'item_id': 'T', 'width': 77, 'demand': 4}, {'item_id': 'U', 'width': 68, 'demand': 2}, {'item_id': 'V', 'width': 24, 'demand': 3}, {'item_id': 'W', 'width': 69, 'demand': 3}, {'item_id': 'X', 'width': 30, 'demand': 4}, {'item_id': 'Y', 'width': 65, 'demand': 3}]}","[{'R': 1, 'T': 1}, {'R': 1, 'T': 1}, {'R': 1, 'T': 1}, {'R': 1, 'T': 1}, {'O': 1, 'Y': 1}, {'O': 1, 'Y': 1}, {'O': 1, 'U': 1}, {'O': 1, 'U': 1}, {'N': 1, 'P': 2}, {'M': 1, 'Q': 2}, {'M': 1, 'Q': 2}, {'K': 1, 'N': 1}, {'H': 1, 'P': 1, 'R': 1}, {'H': 1, 'P': 1, 'R': 1}, {'H': 1, 'L': 1, 'V': 1}, {'H': 1, 'L': 1, 'V': 1}, {'H': 2, 'V': 1, 'X': 1}, {'G': 2, 'I': 2}, {'F': 1, 'G': 1, 'R': 1}, {'E': 1, 'I': 1, 'X': 1}, {'D': 1, 'K': 1}, {'C': 1, 'N': 1}, {'C': 1, 'E': 1, 'G': 1}, {'C': 1, 'E': 1, 'G': 1}, {'B': 1, 'S': 1}, {'B': 1, 'M': 2}, {'B': 1, 'M': 2}, {'A': 1, 'Y': 1}, {'A': 1, 'W': 1}, {'A': 1, 'W': 1}, {'A': 1, 'W': 1}, {'A': 1, 'S': 1}, {'A': 1, 'J': 1, 'X': 1}, {'A': 1, 'J': 1, 'X': 1}]",2,nl,names
CSP,CSP,"I’m juggling a pile of long metal bars and a list of tube lengths someone needs β€” the task is to decide how to slice those bars so every requested piece is produced in the right quantity, while using as few whole bars as possible. Each bar only stretches so far, so the pieces cut from one bar can’t add up to more than its length, and nothing on the order can be missed or duplicated. The better plan is simply the one that gets all the pieces and uses the smallest number of bars (count the bars used to compare plans). The exact lengths and counts are shown below.

Each bar I have is 150.0 units long, so pieces cut from one bar can’t exceed that total.
Tube 1: I need 2 pieces of length 69.
Tube 2: I need 1 pieces of length 82.
Tube 3: I need 1 pieces of length 78.
Tube 4: I need 2 pieces of length 58.
Tube 5: I need 1 pieces of length 48.
Tube 6: I need 1 pieces of length 46.
Tube 7: I need 1 pieces of length 65.
Tube 8: I need 1 pieces of length 99.
Tube 9: I need 1 pieces of length 29.
Tube 10: I need 1 pieces of length 31.
Tube 11: I need 1 pieces of length 93.
Tube 12: I need 2 pieces of length 88.
Tube 13: I need 2 pieces of length 37.
Tube 14: I need 2 pieces of length 92.
Tube 15: I need 3 pieces of length 56.
Tube 16: I need 2 pieces of length 91.
Tube 17: I need 1 pieces of length 54.
Tube 18: I need 1 pieces of length 83.
Tube 19: I need 1 pieces of length 38.
Tube 20: I need 1 pieces of length 50.
I’ll plan cuts to meet every request exactly while using as few 150.0-length bars as possible.

Oh, and when you reply with the cutting plan, please follow this simple JSON layout so I can read it automatically. Here's the shape I expect:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of it like a little form: ""solution"" is a list where each object describes one whole bar and the counts of pieces of each requested length cut from that bar. The placeholder keys like <item_id> stand for the item identifiers from the order, and the numbers are how many pieces of that item you get from that bar. This is just a sketch of the shape I want, not the actual final cutting plan.

Please use the exact identifiers from the instance input β€” don't rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [69, 82, 78, 58, 48, 46, 65, 99, 29, 31, 93, 88, 37, 92, 56, 91, 54, 83, 38, 50], 'demands': [2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 2, 1, 1, 1, 1], 'solution_patterns': [{'14': 1, '15': 1}, {'14': 1, '15': 1}, {'11': 1, '19': 1}, {'11': 1, '14': 1}, {'10': 1, '16': 1}, {'8': 1, '17': 1, '18': 1}, {'4': 1, '7': 1}, {'3': 1, '13': 1}, {'3': 1, '13': 1}, {'1': 1, '6': 1}, {'0': 1, '12': 2}, {'0': 1, '5': 1, '9': 1}, {'0': 1, '2': 1}], 'obj': 13, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'14': 1, '15': 1}, {'14': 1, '15': 1}, {'11': 1, '19': 1}, {'11': 1, '14': 1}, {'10': 1, '16': 1}, {'8': 1, '17': 1, '18': 1}, {'4': 1, '7': 1}, {'3': 1, '13': 1}, {'3': 1, '13': 1}, {'1': 1, '6': 1}, {'0': 1, '12': 2}, {'0': 1, '5': 1, '9': 1}, {'0': 1, '2': 1}]",13,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 20, 'items': [{'item_id': 1, 'width': 69, 'demand': 2}, {'item_id': 2, 'width': 82, 'demand': 1}, {'item_id': 3, 'width': 78, 'demand': 1}, {'item_id': 4, 'width': 58, 'demand': 2}, {'item_id': 5, 'width': 48, 'demand': 1}, {'item_id': 6, 'width': 46, 'demand': 1}, {'item_id': 7, 'width': 65, 'demand': 1}, {'item_id': 8, 'width': 99, 'demand': 1}, {'item_id': 9, 'width': 29, 'demand': 1}, {'item_id': 10, 'width': 31, 'demand': 1}, {'item_id': 11, 'width': 93, 'demand': 1}, {'item_id': 12, 'width': 88, 'demand': 2}, {'item_id': 13, 'width': 37, 'demand': 2}, {'item_id': 14, 'width': 92, 'demand': 2}, {'item_id': 15, 'width': 56, 'demand': 3}, {'item_id': 16, 'width': 91, 'demand': 2}, {'item_id': 17, 'width': 54, 'demand': 1}, {'item_id': 18, 'width': 83, 'demand': 1}, {'item_id': 19, 'width': 38, 'demand': 1}, {'item_id': 20, 'width': 50, 'demand': 1}]}","[{'15': 1, '16': 1}, {'15': 1, '16': 1}, {'12': 1, '20': 1}, {'12': 1, '15': 1}, {'11': 1, '17': 1}, {'9': 1, '18': 1, '19': 1}, {'5': 1, '8': 1}, {'4': 1, '14': 1}, {'4': 1, '14': 1}, {'2': 1, '7': 1}, {'1': 1, '13': 2}, {'1': 1, '6': 1, '10': 1}, {'1': 1, '3': 1}]",3,nl,1
CSP,CSP,"Someone at the shop mapped out all the print orders and now it’s up to the coordinator to map those lengths onto the long master rolls without wasting space. The goal is simple β€” finish all orders while burning through as few master rolls as possible (just count how many rolls a plan consumes) β€” and every single roll must not be cut past its length and every requested piece must be cut exactly as ordered. The specific sizes and demands are shown beneath.

Master rolls are 150.0 long; the coordinator must assign the pieces below onto those rolls without exceeding that length.
Print order 1: 3 pieces of length 85.
Print order 2: 2 pieces of length 36.
Print order 3: 6 pieces of length 44.
Print order 4: 3 pieces of length 45.
Print order 5: 4 pieces of length 51.
Print order 6: 4 pieces of length 43.
Print order 7: 3 pieces of length 32.
Print order 8: 5 pieces of length 61.
Print order 9: 2 pieces of length 80.
Print order 10: 5 pieces of length 62.
Print order 11: 1 pieces of length 68.
Print order 12: 5 pieces of length 66.
Print order 13: 1 pieces of length 42.
Print order 14: 2 pieces of length 84.
Print order 15: 3 pieces of length 57.
Print order 16: 3 pieces of length 24.
Print order 17: 5 pieces of length 64.
Print order 18: 3 pieces of length 98.
Print order 19: 5 pieces of length 37.
Print order 20: 2 pieces of length 87.
Print order 21: 3 pieces of length 59.
Print order 22: 4 pieces of length 99.
Print order 23: 5 pieces of length 89.
Print order 24: 2 pieces of length 77.
The coordinator must pack them to finish all orders while minimizing how many 150.0-length rolls are consumed.

Oh, and one more thing β€” when you send a proposed layout, please keep it in this simple JSON shape so it's easy to read and compare:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

This is just a sketch of the shape I expect, not the actual answer. In plain terms: ""solution"" is a list where each entry is one master roll. Each object inside the list shows which requested piece types go on that roll (the placeholder keys) and the numbers are how many of each piece are cut from that roll. Keep it casual and clear β€” one object per roll.

Please use the exact identifiers from the instance input β€” do not rename them or add new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [85, 36, 44, 45, 51, 43, 32, 61, 80, 62, 68, 66, 42, 84, 57, 24, 64, 98, 37, 87, 59, 99, 89, 77], 'demands': [3, 2, 6, 3, 4, 4, 3, 5, 2, 5, 1, 5, 1, 2, 3, 3, 5, 3, 5, 2, 3, 4, 5, 2], 'solution_patterns': [{'18': 4}, {'15': 3, '23': 1}, {'11': 1, '15': 1, '20': 1}, {'11': 1, '13': 1}, {'11': 1, '13': 1}, {'10': 1, '14': 1, '15': 1}, {'9': 1, '19': 1}, {'9': 1, '19': 1}, {'8': 1, '11': 1}, {'8': 1, '11': 1}, {'7': 1, '22': 1}, {'7': 1, '22': 1}, {'7': 1, '22': 1}, {'7': 1, '22': 1}, {'7': 1, '22': 1}, {'6': 1, '20': 2}, {'5': 2, '16': 1}, {'5': 2, '6': 2}, {'4': 1, '21': 1}, {'4': 1, '17': 1}, {'4': 1, '17': 1}, {'4': 1, '17': 1}, {'3': 1, '21': 1}, {'3': 1, '21': 1}, {'3': 1, '21': 1}, {'2': 1, '12': 1, '16': 1}, {'2': 2, '9': 1}, {'2': 2, '9': 1}, {'2': 2, '9': 1}, {'1': 1, '18': 1, '23': 1}, {'1': 1, '14': 2}, {'0': 1, '16': 1}, {'0': 1, '16': 1}, {'0': 1, '16': 1}], 'obj': 34, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'18': 4}, {'15': 3, '23': 1}, {'11': 1, '15': 1, '20': 1}, {'11': 1, '13': 1}, {'11': 1, '13': 1}, {'10': 1, '14': 1, '15': 1}, {'9': 1, '19': 1}, {'9': 1, '19': 1}, {'8': 1, '11': 1}, {'8': 1, '11': 1}, {'7': 1, '22': 1}, {'7': 1, '22': 1}, {'7': 1, '22': 1}, {'7': 1, '22': 1}, {'7': 1, '22': 1}, {'6': 1, '20': 2}, {'5': 2, '16': 1}, {'5': 2, '6': 2}, {'4': 1, '21': 1}, {'4': 1, '17': 1}, {'4': 1, '17': 1}, {'4': 1, '17': 1}, {'3': 1, '21': 1}, {'3': 1, '21': 1}, {'3': 1, '21': 1}, {'2': 1, '12': 1, '16': 1}, {'2': 2, '9': 1}, {'2': 2, '9': 1}, {'2': 2, '9': 1}, {'1': 1, '18': 1, '23': 1}, {'1': 1, '14': 2}, {'0': 1, '16': 1}, {'0': 1, '16': 1}, {'0': 1, '16': 1}]",34,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 24, 'items': [{'item_id': 1, 'width': 85, 'demand': 3}, {'item_id': 2, 'width': 36, 'demand': 2}, {'item_id': 3, 'width': 44, 'demand': 6}, {'item_id': 4, 'width': 45, 'demand': 3}, {'item_id': 5, 'width': 51, 'demand': 4}, {'item_id': 6, 'width': 43, 'demand': 4}, {'item_id': 7, 'width': 32, 'demand': 3}, {'item_id': 8, 'width': 61, 'demand': 5}, {'item_id': 9, 'width': 80, 'demand': 2}, {'item_id': 10, 'width': 62, 'demand': 5}, {'item_id': 11, 'width': 68, 'demand': 1}, {'item_id': 12, 'width': 66, 'demand': 5}, {'item_id': 13, 'width': 42, 'demand': 1}, {'item_id': 14, 'width': 84, 'demand': 2}, {'item_id': 15, 'width': 57, 'demand': 3}, {'item_id': 16, 'width': 24, 'demand': 3}, {'item_id': 17, 'width': 64, 'demand': 5}, {'item_id': 18, 'width': 98, 'demand': 3}, {'item_id': 19, 'width': 37, 'demand': 5}, {'item_id': 20, 'width': 87, 'demand': 2}, {'item_id': 21, 'width': 59, 'demand': 3}, {'item_id': 22, 'width': 99, 'demand': 4}, {'item_id': 23, 'width': 89, 'demand': 5}, {'item_id': 24, 'width': 77, 'demand': 2}]}","[{'19': 4}, {'16': 3, '24': 1}, {'12': 1, '16': 1, '21': 1}, {'12': 1, '14': 1}, {'12': 1, '14': 1}, {'11': 1, '15': 1, '16': 1}, {'10': 1, '20': 1}, {'10': 1, '20': 1}, {'9': 1, '12': 1}, {'9': 1, '12': 1}, {'8': 1, '23': 1}, {'8': 1, '23': 1}, {'8': 1, '23': 1}, {'8': 1, '23': 1}, {'8': 1, '23': 1}, {'7': 1, '21': 2}, {'6': 2, '17': 1}, {'6': 2, '7': 2}, {'5': 1, '22': 1}, {'5': 1, '18': 1}, {'5': 1, '18': 1}, {'5': 1, '18': 1}, {'4': 1, '22': 1}, {'4': 1, '22': 1}, {'4': 1, '22': 1}, {'3': 1, '13': 1, '17': 1}, {'3': 2, '10': 1}, {'3': 2, '10': 1}, {'3': 2, '10': 1}, {'2': 1, '19': 1, '24': 1}, {'2': 1, '15': 2}, {'1': 1, '17': 1}, {'1': 1, '17': 1}, {'1': 1, '17': 1}]",4,nl,1
CSP,CSP,"In a small workshop, the foreman has to cut ordered boards from fixed-length planks, matching each requested length and quantity exactly while making sure the combined lengths cut from any plank don’t exceed that plank’s size. The practical goal is simply to produce everything while using as few planks as possible β€” evaluate options by counting how many planks each requires and pick the smallest count. The exact board sizes and demands are shown below.

# plank_length=150.0
board_type_id,board_length,quantity_required
A,21,2
B,73,4
C,50,5
D,23,2
E,56,5
F,90,2
G,75,4
H,70,4
I,61,3
J,96,5
K,76,2
L,63,7
M,30,2
N,74,6
O,77,1
P,49,8
Q,65,4
R,33,3
S,34,2
T,59,1
U,98,2
V,45,1
W,29,3
X,72,3
Y,92,5

Oh, and one more practical thing β€” when you send the cutting plan back, please use this simple JSON layout so it's easy to read and check.

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Pretty much: ""solution"" is an array where each entry represents one plank (what was cut from that plank). Inside each entry, the ""<item_id>"" key is the placeholder for a board type and the number next to it is how many of that type were cut from that plank. This is just a sketch of the shape I want, not the actual plan.

Please don’t rename any identifiers from the instance input or invent new ones β€” use them exactly as given. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [21, 73, 50, 23, 56, 90, 75, 70, 61, 96, 76, 63, 30, 74, 77, 49, 65, 33, 34, 59, 98, 45, 29, 72, 92], 'demands': [2, 4, 5, 2, 5, 2, 4, 4, 3, 5, 2, 7, 2, 6, 1, 8, 4, 3, 2, 1, 2, 1, 3, 3, 5], 'solution_patterns': [{'22': 2, '24': 1}, {'22': 2, '24': 1}, {'15': 1, '20': 1}, {'15': 1, '20': 1}, {'15': 1, '16': 1, '18': 1}, {'15': 1, '16': 1, '18': 1}, {'15': 2, '21': 1}, {'14': 1, '23': 1}, {'13': 2}, {'13': 2}, {'13': 2}, {'10': 1, '23': 1}, {'10': 1, '23': 1}, {'9': 1, '15': 1}, {'9': 1, '15': 1}, {'7': 2}, {'7': 2}, {'6': 2}, {'6': 2}, {'5': 1, '19': 1}, {'5': 1, '12': 2}, {'4': 1, '24': 1}, {'4': 1, '24': 1}, {'4': 1, '24': 1}, {'4': 1, '8': 1, '17': 1}, {'4': 1, '8': 1, '17': 1}, {'3': 1, '11': 2}, {'3': 1, '11': 2}, {'2': 1, '16': 1, '17': 1}, {'2': 1, '9': 1}, {'2': 1, '9': 1}, {'2': 1, '9': 1}, {'1': 2}, {'1': 2}, {'0': 1, '11': 2}, {'0': 1, '8': 1, '16': 1}, {'0': 1, '2': 1, '11': 1}], 'obj': 37, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'22': 2, '24': 1}, {'22': 2, '24': 1}, {'15': 1, '20': 1}, {'15': 1, '20': 1}, {'15': 1, '16': 1, '18': 1}, {'15': 1, '16': 1, '18': 1}, {'15': 2, '21': 1}, {'14': 1, '23': 1}, {'13': 2}, {'13': 2}, {'13': 2}, {'10': 1, '23': 1}, {'10': 1, '23': 1}, {'9': 1, '15': 1}, {'9': 1, '15': 1}, {'7': 2}, {'7': 2}, {'6': 2}, {'6': 2}, {'5': 1, '19': 1}, {'5': 1, '12': 2}, {'4': 1, '24': 1}, {'4': 1, '24': 1}, {'4': 1, '24': 1}, {'4': 1, '8': 1, '17': 1}, {'4': 1, '8': 1, '17': 1}, {'3': 1, '11': 2}, {'3': 1, '11': 2}, {'2': 1, '16': 1, '17': 1}, {'2': 1, '9': 1}, {'2': 1, '9': 1}, {'2': 1, '9': 1}, {'1': 2}, {'1': 2}, {'0': 1, '11': 2}, {'0': 1, '8': 1, '16': 1}, {'0': 1, '2': 1, '11': 1}]",37,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 25, 'items': [{'item_id': 'A', 'width': 21, 'demand': 2}, {'item_id': 'B', 'width': 73, 'demand': 4}, {'item_id': 'C', 'width': 50, 'demand': 5}, {'item_id': 'D', 'width': 23, 'demand': 2}, {'item_id': 'E', 'width': 56, 'demand': 5}, {'item_id': 'F', 'width': 90, 'demand': 2}, {'item_id': 'G', 'width': 75, 'demand': 4}, {'item_id': 'H', 'width': 70, 'demand': 4}, {'item_id': 'I', 'width': 61, 'demand': 3}, {'item_id': 'J', 'width': 96, 'demand': 5}, {'item_id': 'K', 'width': 76, 'demand': 2}, {'item_id': 'L', 'width': 63, 'demand': 7}, {'item_id': 'M', 'width': 30, 'demand': 2}, {'item_id': 'N', 'width': 74, 'demand': 6}, {'item_id': 'O', 'width': 77, 'demand': 1}, {'item_id': 'P', 'width': 49, 'demand': 8}, {'item_id': 'Q', 'width': 65, 'demand': 4}, {'item_id': 'R', 'width': 33, 'demand': 3}, {'item_id': 'S', 'width': 34, 'demand': 2}, {'item_id': 'T', 'width': 59, 'demand': 1}, {'item_id': 'U', 'width': 98, 'demand': 2}, {'item_id': 'V', 'width': 45, 'demand': 1}, {'item_id': 'W', 'width': 29, 'demand': 3}, {'item_id': 'X', 'width': 72, 'demand': 3}, {'item_id': 'Y', 'width': 92, 'demand': 5}]}","[{'W': 2, 'Y': 1}, {'W': 2, 'Y': 1}, {'P': 1, 'U': 1}, {'P': 1, 'U': 1}, {'P': 1, 'Q': 1, 'S': 1}, {'P': 1, 'Q': 1, 'S': 1}, {'P': 2, 'V': 1}, {'O': 1, 'X': 1}, {'N': 2}, {'N': 2}, {'N': 2}, {'K': 1, 'X': 1}, {'K': 1, 'X': 1}, {'J': 1, 'P': 1}, {'J': 1, 'P': 1}, {'H': 2}, {'H': 2}, {'G': 2}, {'G': 2}, {'F': 1, 'T': 1}, {'F': 1, 'M': 2}, {'E': 1, 'Y': 1}, {'E': 1, 'Y': 1}, {'E': 1, 'Y': 1}, {'E': 1, 'I': 1, 'R': 1}, {'E': 1, 'I': 1, 'R': 1}, {'D': 1, 'L': 2}, {'D': 1, 'L': 2}, {'C': 1, 'Q': 1, 'R': 1}, {'C': 1, 'J': 1}, {'C': 1, 'J': 1}, {'C': 1, 'J': 1}, {'B': 2}, {'B': 2}, {'A': 1, 'L': 2}, {'A': 1, 'I': 1, 'Q': 1}, {'A': 1, 'C': 1, 'L': 1}]",5,csv,names
CSP,CSP,"A sign maker has to juggle a set of identical-length vinyl rolls and an order sheet with multiple panel lengths and quantities. The choice is how to slice each roll so every requested panel is produced exactly as many times as ordered, no roll is cut beyond its available length, and there aren't any surplus pieces. The better choices are those that keep the number of rolls opened to the minimum β€” check plans by counting rolls used and pick the smallest total. The concrete order and roll details are provided below.

# vinyl_roll_length=150.0
panel_type_id,panel_length,panel_quantity
A,21,1
B,91,1
C,94,4
D,32,2
E,95,2
F,71,1
G,65,1
H,73,1
I,79,2
J,51,1
K,87,2
L,64,2
M,78,2
N,69,1
O,47,2
P,89,1
Q,28,1
R,44,3

Oh, and when you send the cutting plan back, please use this little JSON layout so I can read it easily:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of ""solution"" as a list of rolls: each entry is one roll and the object inside lists the panel-type placeholders and how many pieces of each come from that roll. It's just a sketch of the shape I expect, not the actual answer itself.

Please also make sure all identifiers you use match the instance input exactly β€” no renaming and don't invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'weights': [21, 91, 94, 32, 95, 71, 65, 73, 79, 51, 87, 64, 78, 69, 47, 89, 28, 44], 'demands': [1, 1, 4, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 3], 'solution_patterns': [{'11': 1, '12': 1}, {'11': 1, '12': 1}, {'10': 1, '17': 1}, {'10': 1, '17': 1}, {'8': 1, '13': 1}, {'6': 1, '7': 1}, {'5': 1, '8': 1}, {'4': 1, '17': 1}, {'4': 1, '17': 1}, {'3': 1, '15': 1, '16': 1}, {'2': 1, '14': 1}, {'2': 1, '14': 1}, {'2': 1, '9': 1}, {'1': 1, '17': 1}, {'0': 1, '2': 1, '3': 1}], 'obj': 15, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'11': 1, '12': 1}, {'11': 1, '12': 1}, {'10': 1, '17': 1}, {'10': 1, '17': 1}, {'8': 1, '13': 1}, {'6': 1, '7': 1}, {'5': 1, '8': 1}, {'4': 1, '17': 1}, {'4': 1, '17': 1}, {'3': 1, '15': 1, '16': 1}, {'2': 1, '14': 1}, {'2': 1, '14': 1}, {'2': 1, '9': 1}, {'1': 1, '17': 1}, {'0': 1, '2': 1, '3': 1}]",15,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 18, 'items': [{'item_id': 'A', 'width': 21, 'demand': 1}, {'item_id': 'B', 'width': 91, 'demand': 1}, {'item_id': 'C', 'width': 94, 'demand': 4}, {'item_id': 'D', 'width': 32, 'demand': 2}, {'item_id': 'E', 'width': 95, 'demand': 2}, {'item_id': 'F', 'width': 71, 'demand': 1}, {'item_id': 'G', 'width': 65, 'demand': 1}, {'item_id': 'H', 'width': 73, 'demand': 1}, {'item_id': 'I', 'width': 79, 'demand': 2}, {'item_id': 'J', 'width': 51, 'demand': 1}, {'item_id': 'K', 'width': 87, 'demand': 2}, {'item_id': 'L', 'width': 64, 'demand': 2}, {'item_id': 'M', 'width': 78, 'demand': 2}, {'item_id': 'N', 'width': 69, 'demand': 1}, {'item_id': 'O', 'width': 47, 'demand': 2}, {'item_id': 'P', 'width': 89, 'demand': 1}, {'item_id': 'Q', 'width': 28, 'demand': 1}, {'item_id': 'R', 'width': 44, 'demand': 3}]}","[{'L': 1, 'M': 1}, {'L': 1, 'M': 1}, {'K': 1, 'R': 1}, {'K': 1, 'R': 1}, {'I': 1, 'N': 1}, {'G': 1, 'H': 1}, {'F': 1, 'I': 1}, {'E': 1, 'R': 1}, {'E': 1, 'R': 1}, {'D': 1, 'P': 1, 'Q': 1}, {'C': 1, 'O': 1}, {'C': 1, 'O': 1}, {'C': 1, 'J': 1}, {'B': 1, 'R': 1}, {'A': 1, 'C': 1, 'D': 1}]",6,csv,names
CSP,CSP,"I work at a cable shop and the daily puzzle is this: take big spools of the same fixed length and cut them into the exact runs customers need. The choice to make is which lengths to bunch together on each spool so that every requested run gets cut the right number of times, no piece is skipped or duplicated, and no spool is overfilled. A better plan is simply the one that uses the fewest spools β€” success is measured by counting how many spools are opened and used β€” and the exact cuts to make for each spool add up to no more than the spool’s length. The concrete lengths and demands are listed below.

- **spool_length**: 150.0

| run_id | run_length | required_quantity |
|---|---|---|
| 1 | 97 | 3 |
| 2 | 43 | 3 |
| 3 | 53 | 6 |
| 4 | 47 | 3 |
| 5 | 71 | 1 |
| 6 | 59 | 1 |
| 7 | 90 | 2 |
| 8 | 79 | 2 |
| 9 | 23 | 2 |
| 10 | 22 | 3 |
| 11 | 62 | 1 |
| 12 | 38 | 2 |
| 13 | 39 | 3 |
| 14 | 29 | 2 |
| 15 | 72 | 2 |
| 16 | 55 | 2 |
| 17 | 41 | 1 |
| 18 | 57 | 3 |
| 19 | 58 | 1 |
| 20 | 80 | 3 |
| 21 | 75 | 2 |
| 22 | 76 | 1 |
| 23 | 64 | 1 |
| 24 | 68 | 1 |

Also, if it's helpful, you can send your plan back to me in a simple JSON layout like this:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of ""solution"" as a list of spools: each object in the list is one spool, the keys inside are the item placeholders (the requested run types) and the numbers are how many of that run to cut from that spool. It's just a sketch of the shape I expect, not the actual cutting plan yet.

Please use the exact identifiers from the instance input β€” don't rename them or add new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”"".","{'weights': [97, 43, 53, 47, 71, 59, 90, 79, 23, 22, 62, 38, 39, 29, 72, 55, 41, 57, 58, 80, 75, 76, 64, 68], 'demands': [3, 3, 6, 3, 1, 1, 2, 2, 2, 3, 1, 2, 3, 2, 2, 2, 1, 3, 1, 3, 2, 1, 1, 1], 'solution_patterns': [{'20': 2}, {'14': 1, '21': 1}, {'13': 1, '17': 1, '22': 1}, {'11': 1, '15': 1, '17': 1}, {'9': 1, '14': 1, '15': 1}, {'7': 1, '13': 1, '16': 1}, {'6': 1, '9': 1, '11': 1}, {'5': 1, '6': 1}, {'4': 1, '7': 1}, {'3': 1, '9': 1, '19': 1}, {'3': 1, '8': 1, '19': 1}, {'3': 1, '8': 1, '19': 1}, {'2': 1, '12': 1, '18': 1}, {'2': 1, '12': 1, '17': 1}, {'2': 2, '9': 2}, {'1': 1, '12': 1, '23': 1}, {'1': 2, '10': 1}, {'0': 1, '2': 1}, {'0': 1, '2': 1}, {'0': 1, '2': 1}], 'obj': 20, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'20': 2}, {'14': 1, '21': 1}, {'13': 1, '17': 1, '22': 1}, {'11': 1, '15': 1, '17': 1}, {'9': 1, '14': 1, '15': 1}, {'7': 1, '13': 1, '16': 1}, {'6': 1, '9': 1, '11': 1}, {'5': 1, '6': 1}, {'4': 1, '7': 1}, {'3': 1, '9': 1, '19': 1}, {'3': 1, '8': 1, '19': 1}, {'3': 1, '8': 1, '19': 1}, {'2': 1, '12': 1, '18': 1}, {'2': 1, '12': 1, '17': 1}, {'2': 2, '9': 2}, {'1': 1, '12': 1, '23': 1}, {'1': 2, '10': 1}, {'0': 1, '2': 1}, {'0': 1, '2': 1}, {'0': 1, '2': 1}]",20,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 24, 'items': [{'item_id': 1, 'width': 97, 'demand': 3}, {'item_id': 2, 'width': 43, 'demand': 3}, {'item_id': 3, 'width': 53, 'demand': 6}, {'item_id': 4, 'width': 47, 'demand': 3}, {'item_id': 5, 'width': 71, 'demand': 1}, {'item_id': 6, 'width': 59, 'demand': 1}, {'item_id': 7, 'width': 90, 'demand': 2}, {'item_id': 8, 'width': 79, 'demand': 2}, {'item_id': 9, 'width': 23, 'demand': 2}, {'item_id': 10, 'width': 22, 'demand': 3}, {'item_id': 11, 'width': 62, 'demand': 1}, {'item_id': 12, 'width': 38, 'demand': 2}, {'item_id': 13, 'width': 39, 'demand': 3}, {'item_id': 14, 'width': 29, 'demand': 2}, {'item_id': 15, 'width': 72, 'demand': 2}, {'item_id': 16, 'width': 55, 'demand': 2}, {'item_id': 17, 'width': 41, 'demand': 1}, {'item_id': 18, 'width': 57, 'demand': 3}, {'item_id': 19, 'width': 58, 'demand': 1}, {'item_id': 20, 'width': 80, 'demand': 3}, {'item_id': 21, 'width': 75, 'demand': 2}, {'item_id': 22, 'width': 76, 'demand': 1}, {'item_id': 23, 'width': 64, 'demand': 1}, {'item_id': 24, 'width': 68, 'demand': 1}]}","[{'21': 2}, {'15': 1, '22': 1}, {'14': 1, '18': 1, '23': 1}, {'12': 1, '16': 1, '18': 1}, {'10': 1, '15': 1, '16': 1}, {'8': 1, '14': 1, '17': 1}, {'7': 1, '10': 1, '12': 1}, {'6': 1, '7': 1}, {'5': 1, '8': 1}, {'4': 1, '10': 1, '20': 1}, {'4': 1, '9': 1, '20': 1}, {'4': 1, '9': 1, '20': 1}, {'3': 1, '13': 1, '19': 1}, {'3': 1, '13': 1, '18': 1}, {'3': 2, '10': 2}, {'2': 1, '13': 1, '24': 1}, {'2': 2, '11': 1}, {'1': 1, '3': 1}, {'1': 1, '3': 1}, {'1': 1, '3': 1}]",7,markdown_table,1
CSP,CSP,"Many people don’t think about it, but turning a stack of identical glass sheets into dozens of smaller strips is a daily decision in a glazing shop: which strips to take from which sheet. The right choice is the one that fulfills every demand while using the fewest sheets overall, and you can decide between options by simply adding up how many sheets each plan requires. Cuts can’t go past a sheet’s fixed length and every requested piece must be made without extras or omissions; the exact order details appear below.

- **sheet_length**: 150.0

| strip_type_id | strip_length | required_quantity |
|---|---|---|
| 1 | 48 | 4 |
| 2 | 24 | 3 |
| 3 | 43 | 5 |
| 4 | 74 | 5 |
| 5 | 28 | 2 |
| 6 | 77 | 1 |
| 7 | 45 | 1 |
| 8 | 38 | 3 |
| 9 | 34 | 4 |
| 10 | 89 | 3 |
| 11 | 40 | 4 |
| 12 | 87 | 4 |
| 13 | 73 | 3 |
| 14 | 75 | 1 |
| 15 | 33 | 1 |
| 16 | 72 | 4 |
| 17 | 99 | 6 |
| 18 | 78 | 5 |
| 19 | 94 | 8 |
| 20 | 46 | 3 |
| 21 | 21 | 2 |
| 22 | 67 | 2 |
| 23 | 42 | 3 |
| 24 | 37 | 4 |
| 25 | 59 | 6 |

Oh, and to keep things simple, just reply using this little JSON shape so it's easy to check automatically:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of it like a quick form: ""solution"" is a list where each entry is one sheet of glass and the pairs inside each entry say which strips you took from that sheet β€” the placeholder keys like <item_id> stand for the strip type and the numbers tell you how many of that strip were cut from that sheet. It's just a sketch of the expected shape, not the actual, final cutting plan.

Please use the exact identifiers from the instance input β€” no renaming and no new labels.  
Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [48, 24, 43, 74, 28, 77, 45, 38, 34, 89, 40, 87, 73, 75, 33, 72, 99, 78, 94, 46, 21, 67, 42, 37, 59], 'demands': [4, 3, 5, 5, 2, 1, 1, 3, 4, 3, 4, 4, 3, 1, 1, 4, 6, 5, 8, 3, 2, 2, 3, 4, 6], 'solution_patterns': [{'18': 1, '19': 1}, {'18': 1, '19': 1}, {'18': 1, '19': 1}, {'15': 1, '17': 1}, {'15': 1, '17': 1}, {'15': 1, '17': 1}, {'15': 1, '17': 1}, {'11': 1, '24': 1}, {'11': 1, '24': 1}, {'11': 1, '24': 1}, {'10': 1, '12': 1, '23': 1}, {'10': 1, '12': 1, '23': 1}, {'9': 1, '24': 1}, {'9': 1, '24': 1}, {'9': 1, '24': 1}, {'8': 1, '18': 1, '20': 1}, {'8': 1, '18': 1, '20': 1}, {'7': 1, '8': 1, '17': 1}, {'6': 1, '16': 1}, {'5': 1, '12': 1}, {'4': 2, '18': 1}, {'3': 1, '13': 1}, {'3': 1, '8': 1, '22': 1}, {'3': 1, '7': 2}, {'3': 2}, {'2': 1, '18': 1}, {'2': 1, '16': 1}, {'2': 1, '14': 1, '23': 2}, {'2': 1, '10': 1, '21': 1}, {'2': 1, '10': 1, '21': 1}, {'1': 1, '22': 3}, {'1': 1, '7': 1, '11': 1}, {'1': 2, '18': 1}, {'0': 1, '16': 1}, {'0': 1, '16': 1}, {'0': 1, '16': 1}, {'0': 1, '16': 1}], 'obj': 37, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'18': 1, '19': 1}, {'18': 1, '19': 1}, {'18': 1, '19': 1}, {'15': 1, '17': 1}, {'15': 1, '17': 1}, {'15': 1, '17': 1}, {'15': 1, '17': 1}, {'11': 1, '24': 1}, {'11': 1, '24': 1}, {'11': 1, '24': 1}, {'10': 1, '12': 1, '23': 1}, {'10': 1, '12': 1, '23': 1}, {'9': 1, '24': 1}, {'9': 1, '24': 1}, {'9': 1, '24': 1}, {'8': 1, '18': 1, '20': 1}, {'8': 1, '18': 1, '20': 1}, {'7': 1, '8': 1, '17': 1}, {'6': 1, '16': 1}, {'5': 1, '12': 1}, {'4': 2, '18': 1}, {'3': 1, '13': 1}, {'3': 1, '8': 1, '22': 1}, {'3': 1, '7': 2}, {'3': 2}, {'2': 1, '18': 1}, {'2': 1, '16': 1}, {'2': 1, '14': 1, '23': 2}, {'2': 1, '10': 1, '21': 1}, {'2': 1, '10': 1, '21': 1}, {'1': 1, '22': 3}, {'1': 1, '7': 1, '11': 1}, {'1': 2, '18': 1}, {'0': 1, '16': 1}, {'0': 1, '16': 1}, {'0': 1, '16': 1}, {'0': 1, '16': 1}]",37,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 25, 'items': [{'item_id': 1, 'width': 48, 'demand': 4}, {'item_id': 2, 'width': 24, 'demand': 3}, {'item_id': 3, 'width': 43, 'demand': 5}, {'item_id': 4, 'width': 74, 'demand': 5}, {'item_id': 5, 'width': 28, 'demand': 2}, {'item_id': 6, 'width': 77, 'demand': 1}, {'item_id': 7, 'width': 45, 'demand': 1}, {'item_id': 8, 'width': 38, 'demand': 3}, {'item_id': 9, 'width': 34, 'demand': 4}, {'item_id': 10, 'width': 89, 'demand': 3}, {'item_id': 11, 'width': 40, 'demand': 4}, {'item_id': 12, 'width': 87, 'demand': 4}, {'item_id': 13, 'width': 73, 'demand': 3}, {'item_id': 14, 'width': 75, 'demand': 1}, {'item_id': 15, 'width': 33, 'demand': 1}, {'item_id': 16, 'width': 72, 'demand': 4}, {'item_id': 17, 'width': 99, 'demand': 6}, {'item_id': 18, 'width': 78, 'demand': 5}, {'item_id': 19, 'width': 94, 'demand': 8}, {'item_id': 20, 'width': 46, 'demand': 3}, {'item_id': 21, 'width': 21, 'demand': 2}, {'item_id': 22, 'width': 67, 'demand': 2}, {'item_id': 23, 'width': 42, 'demand': 3}, {'item_id': 24, 'width': 37, 'demand': 4}, {'item_id': 25, 'width': 59, 'demand': 6}]}","[{'19': 1, '20': 1}, {'19': 1, '20': 1}, {'19': 1, '20': 1}, {'16': 1, '18': 1}, {'16': 1, '18': 1}, {'16': 1, '18': 1}, {'16': 1, '18': 1}, {'12': 1, '25': 1}, {'12': 1, '25': 1}, {'12': 1, '25': 1}, {'11': 1, '13': 1, '24': 1}, {'11': 1, '13': 1, '24': 1}, {'10': 1, '25': 1}, {'10': 1, '25': 1}, {'10': 1, '25': 1}, {'9': 1, '19': 1, '21': 1}, {'9': 1, '19': 1, '21': 1}, {'8': 1, '9': 1, '18': 1}, {'7': 1, '17': 1}, {'6': 1, '13': 1}, {'5': 2, '19': 1}, {'4': 1, '14': 1}, {'4': 1, '9': 1, '23': 1}, {'4': 1, '8': 2}, {'4': 2}, {'3': 1, '19': 1}, {'3': 1, '17': 1}, {'3': 1, '15': 1, '24': 2}, {'3': 1, '11': 1, '22': 1}, {'3': 1, '11': 1, '22': 1}, {'2': 1, '23': 3}, {'2': 1, '8': 1, '12': 1}, {'2': 2, '19': 1}, {'1': 1, '17': 1}, {'1': 1, '17': 1}, {'1': 1, '17': 1}, {'1': 1, '17': 1}]",8,markdown_table,1
CSP,CSP,"I heard about a curtain workshop that has long metal rails and a pile of customer orders for shorter rail pieces. The team has to decide how to slice each long rail into the different piece lengths people ordered so every single order is fulfilled exactly, with no missing pieces and no extras. A good cutting plan is the one that uses the fewest whole rails possible β€” that is, count how many full rails each plan requires and pick the plan with the smallest count β€” and every cut on a rail must leave the total length on that rail at or below the rail’s fixed length. The exact piece sizes and demands are shown below.

Each full rail measures 150.0. The orders are:
For piece A, the team needs 4 pieces each of length 39.
For piece B, the team needs 1 pieces each of length 44.
For piece C, the team needs 1 pieces each of length 88.
For piece D, the team needs 7 pieces each of length 72.
For piece E, the team needs 5 pieces each of length 47.
For piece F, the team needs 1 pieces each of length 46.
For piece G, the team needs 5 pieces each of length 63.
For piece H, the team needs 6 pieces each of length 42.
For piece I, the team needs 1 pieces each of length 20.
For piece J, the team needs 3 pieces each of length 27.
For piece K, the team needs 2 pieces each of length 25.
For piece L, the team needs 4 pieces each of length 97.
For piece M, the team needs 2 pieces each of length 85.
For piece N, the team needs 2 pieces each of length 94.
For piece O, the team needs 4 pieces each of length 77.
For piece P, the team needs 4 pieces each of length 64.
For piece Q, the team needs 3 pieces each of length 84.
For piece R, the team needs 3 pieces each of length 36.
For piece S, the team needs 3 pieces each of length 53.
For piece T, the team needs 2 pieces each of length 99.
For piece U, the team needs 2 pieces each of length 90.
The goal is to meet every demand exactly while minimizing how many full 150.0-length rails are needed.

Oh, and one more thing β€” when you give the cutting plan back, try to follow this little JSON layout so it's easy to read by whoever's checking the orders:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

This simply means: ""solution"" is a list where each entry is one full rail. Each object inside the list shows how many pieces of each ordered item you cut from that particular rail (the ""<item_id>"" placeholders stand for the item identifiers, and the numbers are how many pieces of that item come from that rail). The ""..."" means more rails/entries can follow. It's just a sketch of the expected shape, not the actual cutting plan.

Please make sure to use the exact identifiers from the instance input β€” do not rename them or invent new labels. 

- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'weights': [39, 44, 88, 72, 47, 46, 63, 42, 20, 27, 25, 97, 85, 94, 77, 64, 84, 36, 53, 99, 90], 'demands': [4, 1, 1, 7, 5, 1, 5, 6, 1, 3, 2, 4, 2, 2, 4, 4, 3, 3, 3, 2, 2], 'solution_patterns': [{'15': 1, '16': 1}, {'11': 1, '18': 1}, {'11': 1, '18': 1}, {'11': 1, '18': 1}, {'9': 1, '10': 1, '13': 1}, {'9': 2, '13': 1}, {'6': 1, '16': 1}, {'6': 1, '16': 1}, {'6': 1, '12': 1}, {'6': 1, '12': 1}, {'6': 1, '7': 2}, {'6': 1, '7': 2}, {'4': 1, '20': 1}, {'4': 1, '19': 1}, {'4': 1, '19': 1}, {'4': 1, '11': 1}, {'3': 1, '14': 1}, {'3': 1, '14': 1}, {'3': 1, '14': 1}, {'3': 1, '14': 1}, {'3': 1, '7': 1, '17': 1}, {'3': 1, '7': 1, '17': 1}, {'2': 1, '10': 1, '17': 1}, {'1': 1, '7': 1, '15': 1}, {'0': 1, '8': 1, '20': 1}, {'0': 1, '5': 1, '15': 1}, {'0': 1, '4': 1, '15': 1}, {'0': 2, '3': 1}], 'obj': 28, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'15': 1, '16': 1}, {'11': 1, '18': 1}, {'11': 1, '18': 1}, {'11': 1, '18': 1}, {'9': 1, '10': 1, '13': 1}, {'9': 2, '13': 1}, {'6': 1, '16': 1}, {'6': 1, '16': 1}, {'6': 1, '12': 1}, {'6': 1, '12': 1}, {'6': 1, '7': 2}, {'6': 1, '7': 2}, {'4': 1, '20': 1}, {'4': 1, '19': 1}, {'4': 1, '19': 1}, {'4': 1, '11': 1}, {'3': 1, '14': 1}, {'3': 1, '14': 1}, {'3': 1, '14': 1}, {'3': 1, '14': 1}, {'3': 1, '7': 1, '17': 1}, {'3': 1, '7': 1, '17': 1}, {'2': 1, '10': 1, '17': 1}, {'1': 1, '7': 1, '15': 1}, {'0': 1, '8': 1, '20': 1}, {'0': 1, '5': 1, '15': 1}, {'0': 1, '4': 1, '15': 1}, {'0': 2, '3': 1}]",28,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 21, 'items': [{'item_id': 'A', 'width': 39, 'demand': 4}, {'item_id': 'B', 'width': 44, 'demand': 1}, {'item_id': 'C', 'width': 88, 'demand': 1}, {'item_id': 'D', 'width': 72, 'demand': 7}, {'item_id': 'E', 'width': 47, 'demand': 5}, {'item_id': 'F', 'width': 46, 'demand': 1}, {'item_id': 'G', 'width': 63, 'demand': 5}, {'item_id': 'H', 'width': 42, 'demand': 6}, {'item_id': 'I', 'width': 20, 'demand': 1}, {'item_id': 'J', 'width': 27, 'demand': 3}, {'item_id': 'K', 'width': 25, 'demand': 2}, {'item_id': 'L', 'width': 97, 'demand': 4}, {'item_id': 'M', 'width': 85, 'demand': 2}, {'item_id': 'N', 'width': 94, 'demand': 2}, {'item_id': 'O', 'width': 77, 'demand': 4}, {'item_id': 'P', 'width': 64, 'demand': 4}, {'item_id': 'Q', 'width': 84, 'demand': 3}, {'item_id': 'R', 'width': 36, 'demand': 3}, {'item_id': 'S', 'width': 53, 'demand': 3}, {'item_id': 'T', 'width': 99, 'demand': 2}, {'item_id': 'U', 'width': 90, 'demand': 2}]}","[{'P': 1, 'Q': 1}, {'L': 1, 'S': 1}, {'L': 1, 'S': 1}, {'L': 1, 'S': 1}, {'J': 1, 'K': 1, 'N': 1}, {'J': 2, 'N': 1}, {'G': 1, 'Q': 1}, {'G': 1, 'Q': 1}, {'G': 1, 'M': 1}, {'G': 1, 'M': 1}, {'G': 1, 'H': 2}, {'G': 1, 'H': 2}, {'E': 1, 'U': 1}, {'E': 1, 'T': 1}, {'E': 1, 'T': 1}, {'E': 1, 'L': 1}, {'D': 1, 'O': 1}, {'D': 1, 'O': 1}, {'D': 1, 'O': 1}, {'D': 1, 'O': 1}, {'D': 1, 'H': 1, 'R': 1}, {'D': 1, 'H': 1, 'R': 1}, {'C': 1, 'K': 1, 'R': 1}, {'B': 1, 'H': 1, 'P': 1}, {'A': 1, 'I': 1, 'U': 1}, {'A': 1, 'F': 1, 'P': 1}, {'A': 1, 'E': 1, 'P': 1}, {'A': 2, 'D': 1}]",9,nl,names
CSP,CSP,"Out at the dock a team is slicing fixed-length rope coils into lots of customer-specified lengths and has to decide which cuts go on which coil. One plan beats another if it completes all orders using fewer coils β€” the way to check is to count how many coils are used up. All requested pieces and quantities must be supplied exactly (no missing or duplicated items), and the total length cut from any coil can’t be more than the coil’s length. The detailed orders and coil size can be found below.

Each coil provides 150.0 usable length for cuts.
Order 1: produce 2 pieces of length 38.
Order 2: produce 6 pieces of length 56.
Order 3: produce 3 pieces of length 99.
Order 4: produce 2 pieces of length 34.
Order 5: produce 5 pieces of length 82.
Order 6: produce 1 pieces of length 94.
Order 7: produce 1 pieces of length 79.
Order 8: produce 2 pieces of length 23.
Order 9: produce 7 pieces of length 90.
Order 10: produce 3 pieces of length 49.
Order 11: produce 3 pieces of length 36.
Order 12: produce 3 pieces of length 62.
Order 13: produce 3 pieces of length 39.
Order 14: produce 4 pieces of length 68.
Order 15: produce 2 pieces of length 91.
Order 16: produce 5 pieces of length 41.
Order 17: produce 1 pieces of length 24.
Order 18: produce 5 pieces of length 26.
Order 19: produce 1 pieces of length 22.
Order 20: produce 4 pieces of length 20.
Order 21: produce 4 pieces of length 73.
Order 22: produce 1 pieces of length 85.
Plans are compared by the number of coils consumed.

If you want to hand me a cutting plan, just stick to this little JSON shape β€” one array called ""solution"" with an object per coil showing which piece types go on that coil.

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of each object in that array as one rope coil. The ""<item_id>"" placeholders stand in for the type of piece customers ordered, and the numbers are how many pieces of that type you’d cut from that coil. Super simple β€” it's just the form I need, not the final plan.

Please use the exact identifiers from the instance input β€” do not rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [38, 56, 99, 34, 82, 94, 79, 23, 90, 49, 36, 62, 39, 68, 91, 41, 24, 26, 22, 20, 73, 85], 'demands': [2, 6, 3, 2, 5, 1, 1, 2, 7, 3, 3, 3, 3, 4, 2, 5, 1, 5, 1, 4, 4, 1], 'solution_patterns': [{'12': 1, '14': 1, '19': 1}, {'12': 1, '14': 1, '19': 1}, {'11': 2, '17': 1}, {'11': 2, '17': 1}, {'10': 1, '15': 1, '20': 1}, {'10': 1, '15': 1, '20': 1}, {'10': 1, '15': 1, '20': 1}, {'8': 1, '12': 1, '19': 1}, {'7': 1, '15': 1, '21': 1}, {'6': 1, '7': 2, '16': 1}, {'4': 1, '15': 1, '17': 1}, {'4': 1, '13': 1}, {'4': 1, '13': 1}, {'4': 1, '13': 1}, {'4': 1, '13': 1}, {'3': 1, '8': 1, '17': 1}, {'3': 1, '8': 1, '17': 1}, {'2': 1, '9': 1}, {'2': 1, '9': 1}, {'2': 1, '9': 1}, {'1': 1, '19': 1, '20': 1}, {'1': 1, '8': 1}, {'1': 1, '8': 1}, {'1': 1, '8': 1}, {'1': 1, '5': 1}, {'0': 1, '8': 1, '18': 1}, {'0': 1, '1': 2}], 'obj': 27, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'12': 1, '14': 1, '19': 1}, {'12': 1, '14': 1, '19': 1}, {'11': 2, '17': 1}, {'11': 2, '17': 1}, {'10': 1, '15': 1, '20': 1}, {'10': 1, '15': 1, '20': 1}, {'10': 1, '15': 1, '20': 1}, {'8': 1, '12': 1, '19': 1}, {'7': 1, '15': 1, '21': 1}, {'6': 1, '7': 2, '16': 1}, {'4': 1, '15': 1, '17': 1}, {'4': 1, '13': 1}, {'4': 1, '13': 1}, {'4': 1, '13': 1}, {'4': 1, '13': 1}, {'3': 1, '8': 1, '17': 1}, {'3': 1, '8': 1, '17': 1}, {'2': 1, '9': 1}, {'2': 1, '9': 1}, {'2': 1, '9': 1}, {'1': 1, '19': 1, '20': 1}, {'1': 1, '8': 1}, {'1': 1, '8': 1}, {'1': 1, '8': 1}, {'1': 1, '5': 1}, {'0': 1, '8': 1, '18': 1}, {'0': 1, '1': 2}]",27,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 22, 'items': [{'item_id': 1, 'width': 38, 'demand': 2}, {'item_id': 2, 'width': 56, 'demand': 6}, {'item_id': 3, 'width': 99, 'demand': 3}, {'item_id': 4, 'width': 34, 'demand': 2}, {'item_id': 5, 'width': 82, 'demand': 5}, {'item_id': 6, 'width': 94, 'demand': 1}, {'item_id': 7, 'width': 79, 'demand': 1}, {'item_id': 8, 'width': 23, 'demand': 2}, {'item_id': 9, 'width': 90, 'demand': 7}, {'item_id': 10, 'width': 49, 'demand': 3}, {'item_id': 11, 'width': 36, 'demand': 3}, {'item_id': 12, 'width': 62, 'demand': 3}, {'item_id': 13, 'width': 39, 'demand': 3}, {'item_id': 14, 'width': 68, 'demand': 4}, {'item_id': 15, 'width': 91, 'demand': 2}, {'item_id': 16, 'width': 41, 'demand': 5}, {'item_id': 17, 'width': 24, 'demand': 1}, {'item_id': 18, 'width': 26, 'demand': 5}, {'item_id': 19, 'width': 22, 'demand': 1}, {'item_id': 20, 'width': 20, 'demand': 4}, {'item_id': 21, 'width': 73, 'demand': 4}, {'item_id': 22, 'width': 85, 'demand': 1}]}","[{'13': 1, '15': 1, '20': 1}, {'13': 1, '15': 1, '20': 1}, {'12': 2, '18': 1}, {'12': 2, '18': 1}, {'11': 1, '16': 1, '21': 1}, {'11': 1, '16': 1, '21': 1}, {'11': 1, '16': 1, '21': 1}, {'9': 1, '13': 1, '20': 1}, {'8': 1, '16': 1, '22': 1}, {'7': 1, '8': 2, '17': 1}, {'5': 1, '16': 1, '18': 1}, {'5': 1, '14': 1}, {'5': 1, '14': 1}, {'5': 1, '14': 1}, {'5': 1, '14': 1}, {'4': 1, '9': 1, '18': 1}, {'4': 1, '9': 1, '18': 1}, {'3': 1, '10': 1}, {'3': 1, '10': 1}, {'3': 1, '10': 1}, {'2': 1, '20': 1, '21': 1}, {'2': 1, '9': 1}, {'2': 1, '9': 1}, {'2': 1, '9': 1}, {'2': 1, '6': 1}, {'1': 1, '9': 1, '19': 1}, {'1': 1, '2': 2}]",10,nl,1
CSP,CSP,"There’s a stack of identical hides in the workshop and a stack of orders asking for panels of different lengths and quantities. The question is how to split each hide into pieces so all orders get exactly what they asked for, while keeping the number of hides consumed as low as possible β€” effectiveness is just the number of hides opened. No order can be shorted or doubled, and each hide has a fixed usable length that can’t be exceeded. See the concrete details below.

# hide_usable_length=150.0
panel_type_id,panel_length,panel_quantity
A,49,4
B,23,1
C,53,6
D,87,5
E,78,2
F,59,2
G,50,2
H,97,2
I,51,2
J,22,3
K,36,2
L,88,3
M,24,2
N,76,6
O,58,1
P,34,4
Q,93,6
R,56,4
S,77,7
T,83,3
U,71,6

If you want the cutting plan from me, just give me the results in a little JSON shape like this β€” keeps things tidy and easy to read:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of it as a simple form where ""solution"" is a list of hides (one entry per hide used), and each object inside lists which panel types you cut from that hide and how many of each. It's just a sketch of the shape I expect, not the actual answer itself.

Please remember: all identifiers must be used exactly as they appear in the instance input β€” do not rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [49, 23, 53, 87, 78, 59, 50, 97, 51, 22, 36, 88, 24, 76, 58, 34, 93, 56, 77, 83, 71], 'demands': [4, 1, 6, 5, 2, 2, 2, 2, 2, 3, 2, 3, 2, 6, 1, 4, 6, 4, 7, 3, 6], 'solution_patterns': [{'16': 1, '17': 1}, {'16': 1, '17': 1}, {'16': 1, '17': 1}, {'16': 1, '17': 1}, {'14': 1, '19': 1}, {'13': 1, '20': 1}, {'13': 1, '20': 1}, {'13': 1, '20': 1}, {'13': 1, '20': 1}, {'13': 1, '20': 1}, {'13': 1, '20': 1}, {'11': 1, '17': 1}, {'10': 1, '16': 1}, {'10': 1, '16': 1}, {'7': 1, '8': 1}, {'7': 1, '8': 1}, {'6': 1, '9': 1, '18': 1}, {'6': 1, '9': 1, '18': 1}, {'5': 1, '11': 1}, {'5': 1, '11': 1}, {'4': 1, '15': 2}, {'4': 1, '15': 2}, {'3': 1, '17': 1}, {'3': 1, '17': 1}, {'2': 1, '19': 1}, {'2': 1, '19': 1}, {'2': 1, '18': 1}, {'2': 1, '3': 1}, {'2': 1, '3': 1}, {'2': 1, '3': 1}, {'0': 1, '12': 1, '18': 1}, {'0': 1, '12': 1, '18': 1}, {'0': 1, '9': 1, '18': 1}, {'0': 1, '1': 1, '18': 1}], 'obj': 34, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'16': 1, '17': 1}, {'16': 1, '17': 1}, {'16': 1, '17': 1}, {'16': 1, '17': 1}, {'14': 1, '19': 1}, {'13': 1, '20': 1}, {'13': 1, '20': 1}, {'13': 1, '20': 1}, {'13': 1, '20': 1}, {'13': 1, '20': 1}, {'13': 1, '20': 1}, {'11': 1, '17': 1}, {'10': 1, '16': 1}, {'10': 1, '16': 1}, {'7': 1, '8': 1}, {'7': 1, '8': 1}, {'6': 1, '9': 1, '18': 1}, {'6': 1, '9': 1, '18': 1}, {'5': 1, '11': 1}, {'5': 1, '11': 1}, {'4': 1, '15': 2}, {'4': 1, '15': 2}, {'3': 1, '17': 1}, {'3': 1, '17': 1}, {'2': 1, '19': 1}, {'2': 1, '19': 1}, {'2': 1, '18': 1}, {'2': 1, '3': 1}, {'2': 1, '3': 1}, {'2': 1, '3': 1}, {'0': 1, '12': 1, '18': 1}, {'0': 1, '12': 1, '18': 1}, {'0': 1, '9': 1, '18': 1}, {'0': 1, '1': 1, '18': 1}]",34,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 21, 'items': [{'item_id': 'A', 'width': 49, 'demand': 4}, {'item_id': 'B', 'width': 23, 'demand': 1}, {'item_id': 'C', 'width': 53, 'demand': 6}, {'item_id': 'D', 'width': 87, 'demand': 5}, {'item_id': 'E', 'width': 78, 'demand': 2}, {'item_id': 'F', 'width': 59, 'demand': 2}, {'item_id': 'G', 'width': 50, 'demand': 2}, {'item_id': 'H', 'width': 97, 'demand': 2}, {'item_id': 'I', 'width': 51, 'demand': 2}, {'item_id': 'J', 'width': 22, 'demand': 3}, {'item_id': 'K', 'width': 36, 'demand': 2}, {'item_id': 'L', 'width': 88, 'demand': 3}, {'item_id': 'M', 'width': 24, 'demand': 2}, {'item_id': 'N', 'width': 76, 'demand': 6}, {'item_id': 'O', 'width': 58, 'demand': 1}, {'item_id': 'P', 'width': 34, 'demand': 4}, {'item_id': 'Q', 'width': 93, 'demand': 6}, {'item_id': 'R', 'width': 56, 'demand': 4}, {'item_id': 'S', 'width': 77, 'demand': 7}, {'item_id': 'T', 'width': 83, 'demand': 3}, {'item_id': 'U', 'width': 71, 'demand': 6}]}","[{'Q': 1, 'R': 1}, {'Q': 1, 'R': 1}, {'Q': 1, 'R': 1}, {'Q': 1, 'R': 1}, {'O': 1, 'T': 1}, {'N': 1, 'U': 1}, {'N': 1, 'U': 1}, {'N': 1, 'U': 1}, {'N': 1, 'U': 1}, {'N': 1, 'U': 1}, {'N': 1, 'U': 1}, {'L': 1, 'R': 1}, {'K': 1, 'Q': 1}, {'K': 1, 'Q': 1}, {'H': 1, 'I': 1}, {'H': 1, 'I': 1}, {'G': 1, 'J': 1, 'S': 1}, {'G': 1, 'J': 1, 'S': 1}, {'F': 1, 'L': 1}, {'F': 1, 'L': 1}, {'E': 1, 'P': 2}, {'E': 1, 'P': 2}, {'D': 1, 'R': 1}, {'D': 1, 'R': 1}, {'C': 1, 'T': 1}, {'C': 1, 'T': 1}, {'C': 1, 'S': 1}, {'C': 1, 'D': 1}, {'C': 1, 'D': 1}, {'C': 1, 'D': 1}, {'A': 1, 'M': 1, 'S': 1}, {'A': 1, 'M': 1, 'S': 1}, {'A': 1, 'J': 1, 'S': 1}, {'A': 1, 'B': 1, 'S': 1}]",11,csv,names
CSP,CSP,"I run a small banner shop and have a pile of long rolls of fabric. The job is to cut each roll into strips of specific lengths to meet a stack of orders β€” every order wants a certain number of strips at a given length. The question is which strips to cut from which rolls so that every requested strip is made (no missing or extra pieces) and no roll is cut beyond its length, while opening as few rolls as possible β€” the count of rolls actually used is the thing to keep down. The exact strip lengths and quantities are listed below.

# roll_length=150.0
strip_type_id,strip_length,quantity_required
A,56,2
B,42,1
C,82,1
D,54,1
E,68,1
F,78,2
G,83,2
H,33,2
I,84,4
J,53,1
K,76,3
L,64,2
M,60,1
N,66,2
O,81,1
P,50,1
Q,92,3
R,98,1
S,89,1
T,65,1
U,75,4
V,79,2

Also, if you could send the cut plan back in a simple JSON shape, that makes it easy for me to read and plug into my cutting notes. Something like this:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Pretty straightforward: ""solution"" is a list where each entry is one roll and the little objects inside say which strip types and how many of each are cut from that roll. The angle-bracket stuff like <item_id> just stands in for the actual strip identifier you get in the instance, the numbers are counts, and ""..."" means repeat similar entries for however many rolls you use. This is just a sketch of the shape I expect, not the final plan.

Please make sure you use the exact identifiers from the instance β€” don't rename them or invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'weights': [56, 42, 82, 54, 68, 78, 83, 33, 84, 53, 76, 64, 60, 66, 81, 50, 92, 98, 89, 65, 75, 79], 'demands': [2, 1, 1, 1, 1, 2, 2, 2, 4, 1, 3, 2, 1, 2, 1, 1, 3, 1, 1, 1, 4, 2], 'solution_patterns': [{'20': 2}, {'20': 2}, {'15': 1, '16': 1}, {'15': 1, '16': 1}, {'15': 1, '16': 1}, {'10': 1, '19': 1}, {'10': 1, '19': 1}, {'10': 1, '13': 1}, {'8': 1, '13': 1}, {'8': 1, '11': 1}, {'8': 1, '11': 1}, {'7': 2, '21': 1}, {'6': 1, '19': 1}, {'6': 1, '12': 1}, {'5': 1, '19': 1}, {'5': 1, '19': 1}, {'4': 1, '14': 1}, {'3': 1, '18': 1}, {'2': 1, '9': 1}, {'1': 1, '17': 1}, {'0': 1, '21': 1}, {'0': 1, '8': 1}], 'obj': 22, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'20': 2}, {'20': 2}, {'15': 1, '16': 1}, {'15': 1, '16': 1}, {'15': 1, '16': 1}, {'10': 1, '19': 1}, {'10': 1, '19': 1}, {'10': 1, '13': 1}, {'8': 1, '13': 1}, {'8': 1, '11': 1}, {'8': 1, '11': 1}, {'7': 2, '21': 1}, {'6': 1, '19': 1}, {'6': 1, '12': 1}, {'5': 1, '19': 1}, {'5': 1, '19': 1}, {'4': 1, '14': 1}, {'3': 1, '18': 1}, {'2': 1, '9': 1}, {'1': 1, '17': 1}, {'0': 1, '21': 1}, {'0': 1, '8': 1}]",22,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 22, 'items': [{'item_id': 'A', 'width': 56, 'demand': 2}, {'item_id': 'B', 'width': 42, 'demand': 1}, {'item_id': 'C', 'width': 82, 'demand': 1}, {'item_id': 'D', 'width': 54, 'demand': 1}, {'item_id': 'E', 'width': 68, 'demand': 1}, {'item_id': 'F', 'width': 78, 'demand': 2}, {'item_id': 'G', 'width': 83, 'demand': 2}, {'item_id': 'H', 'width': 33, 'demand': 2}, {'item_id': 'I', 'width': 84, 'demand': 4}, {'item_id': 'J', 'width': 53, 'demand': 1}, {'item_id': 'K', 'width': 76, 'demand': 3}, {'item_id': 'L', 'width': 64, 'demand': 2}, {'item_id': 'M', 'width': 60, 'demand': 1}, {'item_id': 'N', 'width': 66, 'demand': 2}, {'item_id': 'O', 'width': 81, 'demand': 1}, {'item_id': 'P', 'width': 50, 'demand': 1}, {'item_id': 'Q', 'width': 92, 'demand': 3}, {'item_id': 'R', 'width': 98, 'demand': 1}, {'item_id': 'S', 'width': 89, 'demand': 1}, {'item_id': 'T', 'width': 65, 'demand': 1}, {'item_id': 'U', 'width': 75, 'demand': 4}, {'item_id': 'V', 'width': 79, 'demand': 2}]}","[{'U': 2}, {'U': 2}, {'P': 1, 'Q': 1}, {'P': 1, 'Q': 1}, {'P': 1, 'Q': 1}, {'K': 1, 'T': 1}, {'K': 1, 'T': 1}, {'K': 1, 'N': 1}, {'I': 1, 'N': 1}, {'I': 1, 'L': 1}, {'I': 1, 'L': 1}, {'H': 2, 'V': 1}, {'G': 1, 'T': 1}, {'G': 1, 'M': 1}, {'F': 1, 'T': 1}, {'F': 1, 'T': 1}, {'E': 1, 'O': 1}, {'D': 1, 'S': 1}, {'C': 1, 'J': 1}, {'B': 1, 'R': 1}, {'A': 1, 'V': 1}, {'A': 1, 'I': 1}]",12,csv,names
CSP,CSP,"Recently the production team had to figure out how to best cut long plastic bars into dozens of parts without wasting material. The setting is straightforward: bars all have the same length, there’s a shopping list of part lengths plus how many of each to make, and the choice is how to arrange cuts on each bar. The best arrangements are those that keep the total number of bars opened to a minimum and minimize wasted leftover β€” one way to see which is best is to add up all the lengths used and see how many bars that would consume, or just count the bars used in the plan. Every ordered piece has to be made exactly as many times as listed, nothing missing or duplicated, and no cut layout may exceed any bar’s length. The concrete details are shown below.

Each stock bar is 150.0 long.
For part 0, produce 1 pieces each of length 67.
For part 1, produce 1 pieces each of length 76.
For part 2, produce 1 pieces each of length 34.
For part 3, produce 2 pieces each of length 38.
For part 4, produce 5 pieces each of length 97.
For part 5, produce 1 pieces each of length 59.
For part 6, produce 1 pieces each of length 37.
For part 7, produce 1 pieces each of length 92.
For part 8, produce 2 pieces each of length 31.
For part 9, produce 2 pieces each of length 72.
For part 10, produce 2 pieces each of length 100.
For part 11, produce 1 pieces each of length 55.
For part 12, produce 2 pieces each of length 28.
For part 13, produce 1 pieces each of length 84.
For part 14, produce 1 pieces each of length 88.
For part 15, produce 2 pieces each of length 43.
For part 16, produce 2 pieces each of length 39.
For part 17, produce 1 pieces each of length 41.
For part 18, produce 1 pieces each of length 52.
For part 19, produce 1 pieces each of length 69.
For part 20, produce 3 pieces each of length 99.
For part 21, produce 2 pieces each of length 63.
For part 22, produce 2 pieces each of length 48.
For part 23, produce 3 pieces each of length 58.
For part 24, produce 3 pieces each of length 33.
The team arranges cuts to meet every order exactly while keeping each bar within its 150.0 length.

You can just hand me a candidate plan using a tiny JSON sketch like this:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

""solution"" is just a list of layouts β€” each object is one bar and inside it you say which item ids appear on that bar and how many of each. Think of it like filling out a simple form for each bar: item id β†’ quantity. This block is only the shape I expect, not the actual cutting plan.

Please make sure all identifiers are used exactly as they appear in the instance input β€” no renaming and no new labels.
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'weights': [67, 76, 34, 38, 97, 59, 37, 92, 31, 72, 100, 55, 28, 84, 88, 43, 39, 41, 52, 69, 99, 63, 48, 58, 33], 'demands': [1, 1, 1, 2, 5, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 3, 2, 2, 3, 3], 'solution_patterns': [{'20': 1, '22': 1}, {'19': 1, '21': 1}, {'13': 1, '24': 2}, {'12': 1, '21': 1, '23': 1}, {'10': 1, '15': 1}, {'10': 1, '15': 1}, {'8': 2, '14': 1}, {'7': 1, '23': 1}, {'6': 1, '9': 1, '17': 1}, {'5': 1, '23': 1, '24': 1}, {'4': 1, '22': 1}, {'4': 1, '18': 1}, {'4': 1, '16': 1}, {'4': 1, '16': 1}, {'3': 1, '20': 1}, {'3': 1, '20': 1}, {'2': 1, '4': 1}, {'1': 1, '9': 1}, {'0': 1, '11': 1, '12': 1}], 'obj': 19, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'20': 1, '22': 1}, {'19': 1, '21': 1}, {'13': 1, '24': 2}, {'12': 1, '21': 1, '23': 1}, {'10': 1, '15': 1}, {'10': 1, '15': 1}, {'8': 2, '14': 1}, {'7': 1, '23': 1}, {'6': 1, '9': 1, '17': 1}, {'5': 1, '23': 1, '24': 1}, {'4': 1, '22': 1}, {'4': 1, '18': 1}, {'4': 1, '16': 1}, {'4': 1, '16': 1}, {'3': 1, '20': 1}, {'3': 1, '20': 1}, {'2': 1, '4': 1}, {'1': 1, '9': 1}, {'0': 1, '11': 1, '12': 1}]",19,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 25, 'items': [{'item_id': 0, 'width': 67, 'demand': 1}, {'item_id': 1, 'width': 76, 'demand': 1}, {'item_id': 2, 'width': 34, 'demand': 1}, {'item_id': 3, 'width': 38, 'demand': 2}, {'item_id': 4, 'width': 97, 'demand': 5}, {'item_id': 5, 'width': 59, 'demand': 1}, {'item_id': 6, 'width': 37, 'demand': 1}, {'item_id': 7, 'width': 92, 'demand': 1}, {'item_id': 8, 'width': 31, 'demand': 2}, {'item_id': 9, 'width': 72, 'demand': 2}, {'item_id': 10, 'width': 100, 'demand': 2}, {'item_id': 11, 'width': 55, 'demand': 1}, {'item_id': 12, 'width': 28, 'demand': 2}, {'item_id': 13, 'width': 84, 'demand': 1}, {'item_id': 14, 'width': 88, 'demand': 1}, {'item_id': 15, 'width': 43, 'demand': 2}, {'item_id': 16, 'width': 39, 'demand': 2}, {'item_id': 17, 'width': 41, 'demand': 1}, {'item_id': 18, 'width': 52, 'demand': 1}, {'item_id': 19, 'width': 69, 'demand': 1}, {'item_id': 20, 'width': 99, 'demand': 3}, {'item_id': 21, 'width': 63, 'demand': 2}, {'item_id': 22, 'width': 48, 'demand': 2}, {'item_id': 23, 'width': 58, 'demand': 3}, {'item_id': 24, 'width': 33, 'demand': 3}]}","[{'20': 1, '22': 1}, {'19': 1, '21': 1}, {'13': 1, '24': 2}, {'12': 1, '21': 1, '23': 1}, {'10': 1, '15': 1}, {'10': 1, '15': 1}, {'8': 2, '14': 1}, {'7': 1, '23': 1}, {'6': 1, '9': 1, '17': 1}, {'5': 1, '23': 1, '24': 1}, {'4': 1, '22': 1}, {'4': 1, '18': 1}, {'4': 1, '16': 1}, {'4': 1, '16': 1}, {'3': 1, '20': 1}, {'3': 1, '20': 1}, {'2': 1, '4': 1}, {'1': 1, '9': 1}, {'0': 1, '11': 1, '12': 1}]",13,nl,0
CSP,CSP,"At the shop someone laid out identical-length stem bundles and a sheet saying how many stems of each length are needed. The job is to work out which cuts to make from each bundle so every length appears the right number of times, and the obvious goal is to keep the number of bundles opened as small as possible β€” simply sum how many bundles are used to judge a plan. Each bundle can only provide pieces whose total length does not exceed the bundle’s length (remaining bits are scrap), and every requested stem must be produced exactly the requested number of times, no omissions or duplicates. The exact instance details follow below.

{
  ""bundle_length"": 150.0,
  ""items"": [
    {
      ""stem_type_id"": 0,
      ""stem_length"": 66,
      ""required_quantity"": 3
    },
    {
      ""stem_type_id"": 1,
      ""stem_length"": 33,
      ""required_quantity"": 1
    },
    {
      ""stem_type_id"": 2,
      ""stem_length"": 85,
      ""required_quantity"": 1
    },
    {
      ""stem_type_id"": 3,
      ""stem_length"": 37,
      ""required_quantity"": 4
    },
    {
      ""stem_type_id"": 4,
      ""stem_length"": 100,
      ""required_quantity"": 2
    },
    {
      ""stem_type_id"": 5,
      ""stem_length"": 47,
      ""required_quantity"": 1
    },
    {
      ""stem_type_id"": 6,
      ""stem_length"": 45,
      ""required_quantity"": 2
    },
    {
      ""stem_type_id"": 7,
      ""stem_length"": 73,
      ""required_quantity"": 1
    },
    {
      ""stem_type_id"": 8,
      ""stem_length"": 61,
      ""required_quantity"": 2
    },
    {
      ""stem_type_id"": 9,
      ""stem_length"": 81,
      ""required_quantity"": 2
    },
    {
      ""stem_type_id"": 10,
      ""stem_length"": 70,
      ""required_quantity"": 1
    },
    {
      ""stem_type_id"": 11,
      ""stem_length"": 94,
      ""required_quantity"": 1
    },
    {
      ""stem_type_id"": 12,
      ""stem_length"": 29,
      ""required_quantity"": 4
    },
    {
      ""stem_type_id"": 13,
      ""stem_length"": 31,
      ""required_quantity"": 2
    },
    {
      ""stem_type_id"": 14,
      ""stem_length"": 76,
      ""required_quantity"": 2
    },
    {
      ""stem_type_id"": 15,
      ""stem_length"": 30,
      ""required_quantity"": 1
    },
    {
      ""stem_type_id"": 16,
      ""stem_length"": 57,
      ""required_quantity"": 1
    },
    {
      ""stem_type_id"": 17,
      ""stem_length"": 98,
      ""required_quantity"": 1
    },
    {
      ""stem_type_id"": 18,
      ""stem_length"": 22,
      ""required_quantity"": 1
    },
    {
      ""stem_type_id"": 19,
      ""stem_length"": 40,
      ""required_quantity"": 1
    }
  ]
}

If you want to hand me a concrete cutting plan, just use this simple JSON shape so I can read it reliably. Something like:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

This sketch says ""solution"" is a list of bundles (one object per opened bundle). Each object maps an item placeholder to how many stems of that length are cut from that bundle. The little ellipsis just means ""repeat as needed"" β€” it's the form, not the actual plan.

Keep in mind this is only a template of the expected shape, not the final answer.

Please also use the exact identifiers from the instance input β€” do not rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [66, 33, 85, 37, 100, 47, 45, 73, 61, 81, 70, 94, 29, 31, 76, 30, 57, 98, 22, 40], 'demands': [3, 1, 1, 4, 2, 1, 2, 1, 2, 2, 1, 1, 4, 2, 2, 1, 1, 1, 1, 1], 'solution_patterns': [{'12': 2, '13': 1, '16': 1}, {'8': 1, '12': 2, '15': 1}, {'7': 1, '14': 1}, {'6': 1, '17': 1}, {'4': 1, '6': 1}, {'4': 1, '5': 1}, {'3': 1, '10': 1, '19': 1}, {'3': 2, '14': 1}, {'2': 1, '8': 1}, {'1': 1, '11': 1, '18': 1}, {'0': 1, '9': 1}, {'0': 1, '9': 1}, {'0': 1, '3': 1, '13': 1}], 'obj': 13, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'12': 2, '13': 1, '16': 1}, {'8': 1, '12': 2, '15': 1}, {'7': 1, '14': 1}, {'6': 1, '17': 1}, {'4': 1, '6': 1}, {'4': 1, '5': 1}, {'3': 1, '10': 1, '19': 1}, {'3': 2, '14': 1}, {'2': 1, '8': 1}, {'1': 1, '11': 1, '18': 1}, {'0': 1, '9': 1}, {'0': 1, '9': 1}, {'0': 1, '3': 1, '13': 1}]",13,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 20, 'items': [{'item_id': 0, 'width': 66, 'demand': 3}, {'item_id': 1, 'width': 33, 'demand': 1}, {'item_id': 2, 'width': 85, 'demand': 1}, {'item_id': 3, 'width': 37, 'demand': 4}, {'item_id': 4, 'width': 100, 'demand': 2}, {'item_id': 5, 'width': 47, 'demand': 1}, {'item_id': 6, 'width': 45, 'demand': 2}, {'item_id': 7, 'width': 73, 'demand': 1}, {'item_id': 8, 'width': 61, 'demand': 2}, {'item_id': 9, 'width': 81, 'demand': 2}, {'item_id': 10, 'width': 70, 'demand': 1}, {'item_id': 11, 'width': 94, 'demand': 1}, {'item_id': 12, 'width': 29, 'demand': 4}, {'item_id': 13, 'width': 31, 'demand': 2}, {'item_id': 14, 'width': 76, 'demand': 2}, {'item_id': 15, 'width': 30, 'demand': 1}, {'item_id': 16, 'width': 57, 'demand': 1}, {'item_id': 17, 'width': 98, 'demand': 1}, {'item_id': 18, 'width': 22, 'demand': 1}, {'item_id': 19, 'width': 40, 'demand': 1}]}","[{'12': 2, '13': 1, '16': 1}, {'8': 1, '12': 2, '15': 1}, {'7': 1, '14': 1}, {'6': 1, '17': 1}, {'4': 1, '6': 1}, {'4': 1, '5': 1}, {'3': 1, '10': 1, '19': 1}, {'3': 2, '14': 1}, {'2': 1, '8': 1}, {'1': 1, '11': 1, '18': 1}, {'0': 1, '9': 1}, {'0': 1, '9': 1}, {'0': 1, '3': 1, '13': 1}]",14,json,0
CSP,CSP,"I run a little curtain-pole shop and need to figure out how to slice standard-length poles into the various segment lengths customers ordered. The choice is which cuts to make on each full pole so every customer gets the exact number of pieces they asked for, and the pieces taken from any one full pole never add up to more than that pole’s length. Better plans are the ones that use fewer full poles overall β€” you can see how good a plan is by simply counting how many stock poles get used; the lower that count, the better. The exact stock length and the list of requested piece sizes and quantities are shown below.

- **stock_pole_length**: 150.0

| segment_type_id | segment_length | quantity_required |
|---|---|---|
| 0 | 35 | 2 |
| 1 | 23 | 2 |
| 2 | 46 | 1 |
| 3 | 99 | 3 |
| 4 | 88 | 1 |
| 5 | 61 | 4 |
| 6 | 70 | 3 |
| 7 | 25 | 1 |
| 8 | 77 | 2 |
| 9 | 79 | 1 |
| 10 | 64 | 3 |
| 11 | 26 | 2 |
| 12 | 76 | 1 |
| 13 | 93 | 1 |
| 14 | 87 | 2 |
| 15 | 51 | 1 |
| 16 | 59 | 1 |
| 17 | 65 | 1 |
| 18 | 40 | 3 |
| 19 | 47 | 3 |
| 20 | 92 | 1 |
| 21 | 34 | 3 |
| 22 | 43 | 1 |
| 23 | 24 | 2 |
| 24 | 68 | 1 |

If you want to hand me a candidate plan, just drop it in a tiny JSON snippet like this so it's easy to read and check:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of this as a simple form: ""solution"" is a list where each entry is one full pole, and each object lists which piece types (the placeholder key) and how many pieces of each type come from that pole (the numbers). It's just a sketch of the shape I expect, not the actual answer.

Please make sure you use the exact identifiers from the instance input β€” don't rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [35, 23, 46, 99, 88, 61, 70, 25, 77, 79, 64, 26, 76, 93, 87, 51, 59, 65, 40, 47, 92, 34, 43, 24, 68], 'demands': [2, 2, 1, 3, 1, 4, 3, 1, 2, 1, 3, 2, 1, 1, 2, 1, 1, 1, 3, 3, 1, 3, 1, 2, 1], 'solution_patterns': [{'20': 1, '21': 1, '23': 1}, {'12': 1, '18': 1, '21': 1}, {'11': 1, '16': 1, '17': 1}, {'8': 1, '11': 1, '19': 1}, {'6': 1, '9': 1}, {'6': 1, '8': 1}, {'5': 1, '14': 1}, {'5': 1, '10': 1, '23': 1}, {'5': 1, '7': 1, '10': 1}, {'4': 1, '5': 1}, {'3': 1, '19': 1}, {'3': 1, '15': 1}, {'3': 1, '11': 1, '23': 1}, {'2': 1, '10': 1, '18': 1}, {'1': 1, '14': 1, '18': 1}, {'1': 1, '13': 1, '21': 1}, {'0': 1, '19': 1, '24': 1}, {'0': 1, '6': 1, '22': 1}], 'obj': 18, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'20': 1, '21': 1, '23': 1}, {'12': 1, '18': 1, '21': 1}, {'11': 1, '16': 1, '17': 1}, {'8': 1, '11': 1, '19': 1}, {'6': 1, '9': 1}, {'6': 1, '8': 1}, {'5': 1, '14': 1}, {'5': 1, '10': 1, '23': 1}, {'5': 1, '7': 1, '10': 1}, {'4': 1, '5': 1}, {'3': 1, '19': 1}, {'3': 1, '15': 1}, {'3': 1, '11': 1, '23': 1}, {'2': 1, '10': 1, '18': 1}, {'1': 1, '14': 1, '18': 1}, {'1': 1, '13': 1, '21': 1}, {'0': 1, '19': 1, '24': 1}, {'0': 1, '6': 1, '22': 1}]",18,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 25, 'items': [{'item_id': 0, 'width': 35, 'demand': 2}, {'item_id': 1, 'width': 23, 'demand': 2}, {'item_id': 2, 'width': 46, 'demand': 1}, {'item_id': 3, 'width': 99, 'demand': 3}, {'item_id': 4, 'width': 88, 'demand': 1}, {'item_id': 5, 'width': 61, 'demand': 4}, {'item_id': 6, 'width': 70, 'demand': 3}, {'item_id': 7, 'width': 25, 'demand': 1}, {'item_id': 8, 'width': 77, 'demand': 2}, {'item_id': 9, 'width': 79, 'demand': 1}, {'item_id': 10, 'width': 64, 'demand': 3}, {'item_id': 11, 'width': 26, 'demand': 2}, {'item_id': 12, 'width': 76, 'demand': 1}, {'item_id': 13, 'width': 93, 'demand': 1}, {'item_id': 14, 'width': 87, 'demand': 2}, {'item_id': 15, 'width': 51, 'demand': 1}, {'item_id': 16, 'width': 59, 'demand': 1}, {'item_id': 17, 'width': 65, 'demand': 1}, {'item_id': 18, 'width': 40, 'demand': 3}, {'item_id': 19, 'width': 47, 'demand': 3}, {'item_id': 20, 'width': 92, 'demand': 1}, {'item_id': 21, 'width': 34, 'demand': 3}, {'item_id': 22, 'width': 43, 'demand': 1}, {'item_id': 23, 'width': 24, 'demand': 2}, {'item_id': 24, 'width': 68, 'demand': 1}]}","[{'20': 1, '21': 1, '23': 1}, {'12': 1, '18': 1, '21': 1}, {'11': 1, '16': 1, '17': 1}, {'8': 1, '11': 1, '19': 1}, {'6': 1, '9': 1}, {'6': 1, '8': 1}, {'5': 1, '14': 1}, {'5': 1, '10': 1, '23': 1}, {'5': 1, '7': 1, '10': 1}, {'4': 1, '5': 1}, {'3': 1, '19': 1}, {'3': 1, '15': 1}, {'3': 1, '11': 1, '23': 1}, {'2': 1, '10': 1, '18': 1}, {'1': 1, '14': 1, '18': 1}, {'1': 1, '13': 1, '21': 1}, {'0': 1, '19': 1, '24': 1}, {'0': 1, '6': 1, '22': 1}]",15,markdown_table,0
CSP,CSP,"A leatherworker is lining up rolls and an order sheet, trying to work out how to cut strips without wasting rolls. The choice is how to allocate each fixed-length roll into the various strip lengths requested so that all quantities on the order are fulfilled and no roll is asked to provide more material than it has. The goal is simple: finish every order while using as few rolls as possible β€” the metric is the number of rolls used, lower is better β€” and make sure every requested strip is cut in the exact amount, no extras or misses. The concrete details are listed below.

- **roll_length**: 150.0

| strip_type_id | strip_length | quantity_required |
|---|---|---|
| A | 71 | 5 |
| B | 83 | 1 |
| C | 49 | 2 |
| D | 20 | 1 |
| E | 32 | 1 |
| F | 60 | 3 |
| G | 92 | 2 |
| H | 95 | 4 |
| I | 88 | 2 |
| J | 46 | 4 |
| K | 81 | 4 |
| L | 44 | 2 |
| M | 76 | 3 |
| N | 99 | 2 |
| O | 66 | 1 |
| P | 61 | 3 |
| Q | 35 | 2 |
| R | 77 | 5 |

Oh, and when you send the cutting plan back, just use this simple JSON layout so I can read it easily:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

This just means: ""solution"" is a list (one entry per roll), and each object shows which strip types go on that roll β€” the keys are the strip/item identifiers and the numbers are how many of that strip you cut from that roll. Think of it like filling out a packing slip for each roll. It's just a sketch of the shape I expect, not the actual answer.

Please make sure to use the exact identifiers from the instance input β€” do not rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [71, 83, 49, 20, 32, 60, 92, 95, 88, 46, 81, 44, 76, 99, 66, 61, 35, 77], 'demands': [5, 1, 2, 1, 1, 3, 2, 4, 2, 4, 4, 2, 3, 2, 1, 3, 2, 5], 'solution_patterns': [{'14': 1, '17': 1}, {'12': 1, '16': 2}, {'10': 1, '15': 1}, {'8': 1, '15': 1}, {'8': 1, '15': 1}, {'7': 1, '9': 1}, {'7': 1, '9': 1}, {'7': 1, '9': 1}, {'7': 1, '9': 1}, {'6': 1, '11': 1}, {'6': 1, '11': 1}, {'5': 1, '10': 1}, {'5': 1, '10': 1}, {'5': 1, '10': 1}, {'3': 1, '4': 1, '17': 1}, {'2': 1, '13': 1}, {'2': 1, '13': 1}, {'1': 1, '15': 1}, {'0': 1, '17': 1}, {'0': 1, '17': 1}, {'0': 1, '17': 1}, {'0': 1, '12': 1}, {'0': 1, '12': 1}], 'obj': 23, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'14': 1, '17': 1}, {'12': 1, '16': 2}, {'10': 1, '15': 1}, {'8': 1, '15': 1}, {'8': 1, '15': 1}, {'7': 1, '9': 1}, {'7': 1, '9': 1}, {'7': 1, '9': 1}, {'7': 1, '9': 1}, {'6': 1, '11': 1}, {'6': 1, '11': 1}, {'5': 1, '10': 1}, {'5': 1, '10': 1}, {'5': 1, '10': 1}, {'3': 1, '4': 1, '17': 1}, {'2': 1, '13': 1}, {'2': 1, '13': 1}, {'1': 1, '15': 1}, {'0': 1, '17': 1}, {'0': 1, '17': 1}, {'0': 1, '17': 1}, {'0': 1, '12': 1}, {'0': 1, '12': 1}]",23,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 18, 'items': [{'item_id': 'A', 'width': 71, 'demand': 5}, {'item_id': 'B', 'width': 83, 'demand': 1}, {'item_id': 'C', 'width': 49, 'demand': 2}, {'item_id': 'D', 'width': 20, 'demand': 1}, {'item_id': 'E', 'width': 32, 'demand': 1}, {'item_id': 'F', 'width': 60, 'demand': 3}, {'item_id': 'G', 'width': 92, 'demand': 2}, {'item_id': 'H', 'width': 95, 'demand': 4}, {'item_id': 'I', 'width': 88, 'demand': 2}, {'item_id': 'J', 'width': 46, 'demand': 4}, {'item_id': 'K', 'width': 81, 'demand': 4}, {'item_id': 'L', 'width': 44, 'demand': 2}, {'item_id': 'M', 'width': 76, 'demand': 3}, {'item_id': 'N', 'width': 99, 'demand': 2}, {'item_id': 'O', 'width': 66, 'demand': 1}, {'item_id': 'P', 'width': 61, 'demand': 3}, {'item_id': 'Q', 'width': 35, 'demand': 2}, {'item_id': 'R', 'width': 77, 'demand': 5}]}","[{'O': 1, 'R': 1}, {'M': 1, 'Q': 2}, {'K': 1, 'P': 1}, {'I': 1, 'P': 1}, {'I': 1, 'P': 1}, {'H': 1, 'J': 1}, {'H': 1, 'J': 1}, {'H': 1, 'J': 1}, {'H': 1, 'J': 1}, {'G': 1, 'L': 1}, {'G': 1, 'L': 1}, {'F': 1, 'K': 1}, {'F': 1, 'K': 1}, {'F': 1, 'K': 1}, {'D': 1, 'E': 1, 'R': 1}, {'C': 1, 'N': 1}, {'C': 1, 'N': 1}, {'B': 1, 'P': 1}, {'A': 1, 'R': 1}, {'A': 1, 'R': 1}, {'A': 1, 'R': 1}, {'A': 1, 'M': 1}, {'A': 1, 'M': 1}]",16,markdown_table,names
CSP,CSP,"I’m lining up a bunch of events and need to cut table runners from bolts of fabric that all come in the same fixed length. The decision is how to slice each bolt into the specific runner lengths that were ordered so every order gets exactly what it asked for, and the best plan is the one that opens the fewest boltsβ€”counting bolts opened tells you how well it’s working. Nothing can be left out or duplicated, and no cut can make a bolt’s total length go over its size. Concrete details will be shown below.

# bolt_length=150.0
runner_type_id,runner_length,quantity_needed
1,44,1
2,57,4
3,23,2
4,62,1
5,36,1
6,51,2
7,72,1
8,64,2
9,58,4
10,52,3
11,97,3
12,45,3
13,30,1
14,87,1
15,33,2
16,59,1

Also, if you want to hand me the actual cut plan, please use this little JSON shape so everything lines up cleanly:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of it like a checklist: the top-level ""solution"" is a list where each entry is one opened bolt. Inside each entry you list the ordered item identifiers (""<item_id>"") and the numbers are how many pieces of that item you cut from that bolt. It's just a sketch of the shape I expect, not the final answer itself.

One gentle but important note: use the exact identifiers from the instance input β€” do not rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [44, 57, 23, 62, 36, 51, 72, 64, 58, 52, 97, 45, 30, 87, 33, 59], 'demands': [1, 4, 2, 1, 1, 2, 1, 2, 4, 3, 3, 3, 1, 1, 2, 1], 'solution_patterns': [{'13': 1, '15': 1}, {'9': 1, '10': 1}, {'8': 1, '11': 2}, {'7': 1, '9': 1, '14': 1}, {'5': 1, '10': 1}, {'5': 1, '10': 1}, {'3': 1, '8': 1, '12': 1}, {'2': 1, '7': 1, '8': 1}, {'2': 1, '6': 1, '9': 1}, {'1': 2, '14': 1}, {'1': 2, '4': 1}, {'0': 1, '8': 1, '11': 1}], 'obj': 12, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'13': 1, '15': 1}, {'9': 1, '10': 1}, {'8': 1, '11': 2}, {'7': 1, '9': 1, '14': 1}, {'5': 1, '10': 1}, {'5': 1, '10': 1}, {'3': 1, '8': 1, '12': 1}, {'2': 1, '7': 1, '8': 1}, {'2': 1, '6': 1, '9': 1}, {'1': 2, '14': 1}, {'1': 2, '4': 1}, {'0': 1, '8': 1, '11': 1}]",12,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 16, 'items': [{'item_id': 1, 'width': 44, 'demand': 1}, {'item_id': 2, 'width': 57, 'demand': 4}, {'item_id': 3, 'width': 23, 'demand': 2}, {'item_id': 4, 'width': 62, 'demand': 1}, {'item_id': 5, 'width': 36, 'demand': 1}, {'item_id': 6, 'width': 51, 'demand': 2}, {'item_id': 7, 'width': 72, 'demand': 1}, {'item_id': 8, 'width': 64, 'demand': 2}, {'item_id': 9, 'width': 58, 'demand': 4}, {'item_id': 10, 'width': 52, 'demand': 3}, {'item_id': 11, 'width': 97, 'demand': 3}, {'item_id': 12, 'width': 45, 'demand': 3}, {'item_id': 13, 'width': 30, 'demand': 1}, {'item_id': 14, 'width': 87, 'demand': 1}, {'item_id': 15, 'width': 33, 'demand': 2}, {'item_id': 16, 'width': 59, 'demand': 1}]}","[{'14': 1, '16': 1}, {'10': 1, '11': 1}, {'9': 1, '12': 2}, {'8': 1, '10': 1, '15': 1}, {'6': 1, '11': 1}, {'6': 1, '11': 1}, {'4': 1, '9': 1, '13': 1}, {'3': 1, '8': 1, '9': 1}, {'3': 1, '7': 1, '10': 1}, {'2': 2, '15': 1}, {'2': 2, '5': 1}, {'1': 1, '9': 1, '12': 1}]",17,csv,1
CSP,CSP,"At the workshop a foreman looks at a stack of long canvas bolts and a checklist of panel sizes and counts and has to plan the cuts. The task is to decide how to group panel cuts on each bolt so every panel on the list is produced in the exact amount requested, with no bolt being asked to give more length than it has. The smarter layout is the one that finishes the job with the least number of bolts, which is checked by adding up how many bolts are used. The detailed sizes and quantities follow below.

- **bolt_length**: 150.0

| panel_id | panel_length | panel_quantity |
|---|---|---|
| 1 | 55 | 1 |
| 2 | 84 | 4 |
| 3 | 21 | 5 |
| 4 | 53 | 1 |
| 5 | 78 | 2 |
| 6 | 68 | 2 |
| 7 | 20 | 3 |
| 8 | 60 | 2 |
| 9 | 43 | 2 |
| 10 | 97 | 2 |
| 11 | 77 | 2 |
| 12 | 85 | 1 |
| 13 | 49 | 1 |
| 14 | 98 | 2 |
| 15 | 39 | 2 |
| 16 | 42 | 5 |
| 17 | 89 | 2 |
| 18 | 76 | 2 |
| 19 | 88 | 1 |
| 20 | 35 | 1 |

Oh, and when you want to hand me the actual cut layout, just follow this little JSON sketch for the shape of the reply β€” nothing fancy, just the same structure so I can read it straight away:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Here the idea in plain terms: ""solution"" is a list of bolts (one object per bolt), and each object lists which panel IDs appear on that bolt and how many of each are cut there. The angle-bracket placeholders like <item_id> stand in for the panel IDs from the checklist, and the numbers are how many pieces of that panel you cut from that particular bolt. This is just the expected shape of the answer β€” a sketch, not the actual plan.

Please be sure to use the exact identifiers from the instance input β€” no renaming, and don't invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [55, 84, 21, 53, 78, 68, 20, 60, 43, 97, 77, 85, 49, 98, 39, 42, 89, 76, 88, 35], 'demands': [1, 4, 5, 1, 2, 2, 3, 2, 2, 2, 2, 1, 1, 2, 2, 5, 2, 2, 1, 1], 'solution_patterns': [{'15': 1, '16': 1}, {'15': 1, '16': 1}, {'14': 1, '17': 1, '19': 1}, {'13': 1, '15': 1}, {'13': 1, '15': 1}, {'8': 1, '9': 1}, {'8': 1, '9': 1}, {'6': 1, '11': 1, '14': 1}, {'5': 1, '10': 1}, {'5': 1, '10': 1}, {'3': 1, '4': 1}, {'2': 2, '6': 1, '17': 1}, {'2': 3, '4': 1}, {'1': 1, '12': 1}, {'1': 1, '7': 1}, {'1': 1, '7': 1}, {'1': 1, '6': 1, '15': 1}, {'0': 1, '18': 1}], 'obj': 18, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'15': 1, '16': 1}, {'15': 1, '16': 1}, {'14': 1, '17': 1, '19': 1}, {'13': 1, '15': 1}, {'13': 1, '15': 1}, {'8': 1, '9': 1}, {'8': 1, '9': 1}, {'6': 1, '11': 1, '14': 1}, {'5': 1, '10': 1}, {'5': 1, '10': 1}, {'3': 1, '4': 1}, {'2': 2, '6': 1, '17': 1}, {'2': 3, '4': 1}, {'1': 1, '12': 1}, {'1': 1, '7': 1}, {'1': 1, '7': 1}, {'1': 1, '6': 1, '15': 1}, {'0': 1, '18': 1}]",18,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 20, 'items': [{'item_id': 1, 'width': 55, 'demand': 1}, {'item_id': 2, 'width': 84, 'demand': 4}, {'item_id': 3, 'width': 21, 'demand': 5}, {'item_id': 4, 'width': 53, 'demand': 1}, {'item_id': 5, 'width': 78, 'demand': 2}, {'item_id': 6, 'width': 68, 'demand': 2}, {'item_id': 7, 'width': 20, 'demand': 3}, {'item_id': 8, 'width': 60, 'demand': 2}, {'item_id': 9, 'width': 43, 'demand': 2}, {'item_id': 10, 'width': 97, 'demand': 2}, {'item_id': 11, 'width': 77, 'demand': 2}, {'item_id': 12, 'width': 85, 'demand': 1}, {'item_id': 13, 'width': 49, 'demand': 1}, {'item_id': 14, 'width': 98, 'demand': 2}, {'item_id': 15, 'width': 39, 'demand': 2}, {'item_id': 16, 'width': 42, 'demand': 5}, {'item_id': 17, 'width': 89, 'demand': 2}, {'item_id': 18, 'width': 76, 'demand': 2}, {'item_id': 19, 'width': 88, 'demand': 1}, {'item_id': 20, 'width': 35, 'demand': 1}]}","[{'16': 1, '17': 1}, {'16': 1, '17': 1}, {'15': 1, '18': 1, '20': 1}, {'14': 1, '16': 1}, {'14': 1, '16': 1}, {'9': 1, '10': 1}, {'9': 1, '10': 1}, {'7': 1, '12': 1, '15': 1}, {'6': 1, '11': 1}, {'6': 1, '11': 1}, {'4': 1, '5': 1}, {'3': 2, '7': 1, '18': 1}, {'3': 3, '5': 1}, {'2': 1, '13': 1}, {'2': 1, '8': 1}, {'2': 1, '8': 1}, {'2': 1, '7': 1, '16': 1}, {'1': 1, '19': 1}]",18,markdown_table,1
CSP,CSP,"We’ve got a stack of label rolls to turn into strips for several customer orders, and the job is to decide how to slice each roll so every required label length and quantity is made exactly once. A better plan is the one that finishes the whole batch while opening the smallest possible number of full rolls β€” you can check success by tallying how many rolls were consumed. The concrete cut sizes and counts are listed below.

- **label_roll_length**: 150.0

| label_job_id | label_strip_length | label_quantity |
|---|---|---|
| 0 | 28 | 1 |
| 1 | 95 | 3 |
| 2 | 41 | 3 |
| 3 | 87 | 5 |
| 4 | 32 | 6 |
| 5 | 56 | 5 |
| 6 | 58 | 2 |
| 7 | 35 | 1 |
| 8 | 30 | 1 |
| 9 | 88 | 7 |
| 10 | 31 | 4 |
| 11 | 47 | 2 |
| 12 | 54 | 1 |
| 13 | 52 | 4 |
| 14 | 40 | 3 |
| 15 | 65 | 2 |
| 16 | 43 | 3 |
| 17 | 80 | 2 |
| 18 | 29 | 1 |
| 19 | 92 | 6 |
| 20 | 100 | 3 |
| 21 | 90 | 3 |

You can just send the plan back in a tiny JSON shape like this β€” one object per roll, listing which label types and how many of each came off that roll.

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of each object in the solution array as one full label roll: the keys (the ""<item_id>"" placeholders) mark the label type, and the numbers are how many pieces of that type you cut from that roll. This is only a sketch of the expected shape β€” not the actual answer.

Please use the exact identifiers from the instance input, do not rename them or invent new ones. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'weights': [28, 95, 41, 87, 32, 56, 58, 35, 30, 88, 31, 47, 54, 52, 40, 65, 43, 80, 29, 92, 100, 90], 'demands': [1, 3, 3, 5, 6, 5, 2, 1, 1, 7, 4, 2, 1, 4, 3, 2, 3, 2, 1, 6, 3, 3], 'solution_patterns': [{'16': 1, '19': 1}, {'16': 1, '19': 1}, {'15': 1, '17': 1}, {'15': 1, '17': 1}, {'11': 1, '19': 1}, {'11': 1, '19': 1}, {'9': 1, '16': 1}, {'9': 1, '13': 1}, {'9': 1, '12': 1}, {'8': 1, '14': 3}, {'6': 1, '19': 1}, {'6': 1, '19': 1}, {'5': 1, '21': 1}, {'5': 1, '21': 1}, {'5': 1, '21': 1}, {'5': 1, '9': 1}, {'5': 1, '9': 1}, {'4': 1, '9': 1, '18': 1}, {'4': 1, '8': 1, '9': 1}, {'3': 1, '4': 1, '10': 1}, {'3': 1, '4': 1, '10': 1}, {'3': 1, '4': 1, '10': 1}, {'3': 1, '4': 1, '10': 1}, {'2': 1, '20': 1}, {'2': 1, '20': 1}, {'2': 1, '20': 1}, {'1': 1, '13': 1}, {'1': 1, '13': 1}, {'1': 1, '13': 1}, {'0': 1, '3': 1, '7': 1}], 'obj': 30, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'16': 1, '19': 1}, {'16': 1, '19': 1}, {'15': 1, '17': 1}, {'15': 1, '17': 1}, {'11': 1, '19': 1}, {'11': 1, '19': 1}, {'9': 1, '16': 1}, {'9': 1, '13': 1}, {'9': 1, '12': 1}, {'8': 1, '14': 3}, {'6': 1, '19': 1}, {'6': 1, '19': 1}, {'5': 1, '21': 1}, {'5': 1, '21': 1}, {'5': 1, '21': 1}, {'5': 1, '9': 1}, {'5': 1, '9': 1}, {'4': 1, '9': 1, '18': 1}, {'4': 1, '8': 1, '9': 1}, {'3': 1, '4': 1, '10': 1}, {'3': 1, '4': 1, '10': 1}, {'3': 1, '4': 1, '10': 1}, {'3': 1, '4': 1, '10': 1}, {'2': 1, '20': 1}, {'2': 1, '20': 1}, {'2': 1, '20': 1}, {'1': 1, '13': 1}, {'1': 1, '13': 1}, {'1': 1, '13': 1}, {'0': 1, '3': 1, '7': 1}]",30,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 22, 'items': [{'item_id': 0, 'width': 28, 'demand': 1}, {'item_id': 1, 'width': 95, 'demand': 3}, {'item_id': 2, 'width': 41, 'demand': 3}, {'item_id': 3, 'width': 87, 'demand': 5}, {'item_id': 4, 'width': 32, 'demand': 6}, {'item_id': 5, 'width': 56, 'demand': 5}, {'item_id': 6, 'width': 58, 'demand': 2}, {'item_id': 7, 'width': 35, 'demand': 1}, {'item_id': 8, 'width': 30, 'demand': 1}, {'item_id': 9, 'width': 88, 'demand': 7}, {'item_id': 10, 'width': 31, 'demand': 4}, {'item_id': 11, 'width': 47, 'demand': 2}, {'item_id': 12, 'width': 54, 'demand': 1}, {'item_id': 13, 'width': 52, 'demand': 4}, {'item_id': 14, 'width': 40, 'demand': 3}, {'item_id': 15, 'width': 65, 'demand': 2}, {'item_id': 16, 'width': 43, 'demand': 3}, {'item_id': 17, 'width': 80, 'demand': 2}, {'item_id': 18, 'width': 29, 'demand': 1}, {'item_id': 19, 'width': 92, 'demand': 6}, {'item_id': 20, 'width': 100, 'demand': 3}, {'item_id': 21, 'width': 90, 'demand': 3}]}","[{'16': 1, '19': 1}, {'16': 1, '19': 1}, {'15': 1, '17': 1}, {'15': 1, '17': 1}, {'11': 1, '19': 1}, {'11': 1, '19': 1}, {'9': 1, '16': 1}, {'9': 1, '13': 1}, {'9': 1, '12': 1}, {'8': 1, '14': 3}, {'6': 1, '19': 1}, {'6': 1, '19': 1}, {'5': 1, '21': 1}, {'5': 1, '21': 1}, {'5': 1, '21': 1}, {'5': 1, '9': 1}, {'5': 1, '9': 1}, {'4': 1, '9': 1, '18': 1}, {'4': 1, '8': 1, '9': 1}, {'3': 1, '4': 1, '10': 1}, {'3': 1, '4': 1, '10': 1}, {'3': 1, '4': 1, '10': 1}, {'3': 1, '4': 1, '10': 1}, {'2': 1, '20': 1}, {'2': 1, '20': 1}, {'2': 1, '20': 1}, {'1': 1, '13': 1}, {'1': 1, '13': 1}, {'1': 1, '13': 1}, {'0': 1, '3': 1, '7': 1}]",19,markdown_table,0
CSP,CSP,"At the small factory, the job is to cut fixed-length ribbon spools into a mix of lengths the clients ordered, and the planner decides the cutting pattern for each spool. The rule is straightforward: every order must be met with the correct number of pieces, nothing can be duplicated or left out, and each spool can only provide up to its own length. The plan that wins is the one that gets everything made while opening the fewest spools β€” you simply count how many spools were used. The specific spool length and order breakdown are shown below.

{
  ""spool_length"": 150.0,
  ""items"": [
    {
      ""order_type_id"": 1,
      ""piece_length"": 85,
      ""quantity_required"": 1
    },
    {
      ""order_type_id"": 2,
      ""piece_length"": 71,
      ""quantity_required"": 4
    },
    {
      ""order_type_id"": 3,
      ""piece_length"": 42,
      ""quantity_required"": 5
    },
    {
      ""order_type_id"": 4,
      ""piece_length"": 50,
      ""quantity_required"": 2
    },
    {
      ""order_type_id"": 5,
      ""piece_length"": 77,
      ""quantity_required"": 2
    },
    {
      ""order_type_id"": 6,
      ""piece_length"": 92,
      ""quantity_required"": 4
    },
    {
      ""order_type_id"": 7,
      ""piece_length"": 59,
      ""quantity_required"": 1
    },
    {
      ""order_type_id"": 8,
      ""piece_length"": 84,
      ""quantity_required"": 4
    },
    {
      ""order_type_id"": 9,
      ""piece_length"": 88,
      ""quantity_required"": 1
    },
    {
      ""order_type_id"": 10,
      ""piece_length"": 55,
      ""quantity_required"": 1
    },
    {
      ""order_type_id"": 11,
      ""piece_length"": 87,
      ""quantity_required"": 3
    },
    {
      ""order_type_id"": 12,
      ""piece_length"": 31,
      ""quantity_required"": 2
    },
    {
      ""order_type_id"": 13,
      ""piece_length"": 20,
      ""quantity_required"": 3
    },
    {
      ""order_type_id"": 14,
      ""piece_length"": 86,
      ""quantity_required"": 1
    },
    {
      ""order_type_id"": 15,
      ""piece_length"": 56,
      ""quantity_required"": 1
    },
    {
      ""order_type_id"": 16,
      ""piece_length"": 74,
      ""quantity_required"": 1
    }
  ]
}

You can send your plan back in a lightweight JSON shape like this β€” just a quick sketch of how I expect the answer to be laid out:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Here ""solution"" is a list where each entry corresponds to one spool (one cutting pattern). Each object inside the list lists item placeholders (those angled-bracket names) mapped to how many pieces of that length you cut from that spool. This is just the shape I want β€” a template, not the actual cutting plan.

Please make sure you use the exact identifiers from the instance input β€” do not rename or invent labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [85, 71, 42, 50, 77, 92, 59, 84, 88, 55, 87, 31, 20, 86, 56, 74], 'demands': [1, 4, 5, 2, 2, 4, 1, 4, 1, 1, 3, 2, 3, 1, 1, 1], 'solution_patterns': [{'11': 2, '13': 1}, {'9': 1, '10': 1}, {'8': 1, '14': 1}, {'7': 1, '14': 1}, {'7': 1, '14': 1}, {'5': 1, '12': 2}, {'3': 1, '10': 1}, {'3': 1, '10': 1}, {'2': 1, '7': 1, '12': 1}, {'2': 1, '7': 1, '12': 1}, {'2': 1, '5': 1}, {'2': 1, '5': 1}, {'2': 1, '5': 1}, {'1': 1, '15': 1}, {'1': 1, '4': 1}, {'1': 1, '4': 1}, {'1': 2}, {'0': 1, '6': 1}], 'obj': 18, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'11': 2, '13': 1}, {'9': 1, '10': 1}, {'8': 1, '14': 1}, {'7': 1, '14': 1}, {'7': 1, '14': 1}, {'5': 1, '12': 2}, {'3': 1, '10': 1}, {'3': 1, '10': 1}, {'2': 1, '7': 1, '12': 1}, {'2': 1, '7': 1, '12': 1}, {'2': 1, '5': 1}, {'2': 1, '5': 1}, {'2': 1, '5': 1}, {'1': 1, '15': 1}, {'1': 1, '4': 1}, {'1': 1, '4': 1}, {'1': 2}, {'0': 1, '6': 1}]",18,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 16, 'items': [{'item_id': 1, 'width': 85, 'demand': 1}, {'item_id': 2, 'width': 71, 'demand': 4}, {'item_id': 3, 'width': 42, 'demand': 5}, {'item_id': 4, 'width': 50, 'demand': 2}, {'item_id': 5, 'width': 77, 'demand': 2}, {'item_id': 6, 'width': 92, 'demand': 4}, {'item_id': 7, 'width': 59, 'demand': 1}, {'item_id': 8, 'width': 84, 'demand': 4}, {'item_id': 9, 'width': 88, 'demand': 1}, {'item_id': 10, 'width': 55, 'demand': 1}, {'item_id': 11, 'width': 87, 'demand': 3}, {'item_id': 12, 'width': 31, 'demand': 2}, {'item_id': 13, 'width': 20, 'demand': 3}, {'item_id': 14, 'width': 86, 'demand': 1}, {'item_id': 15, 'width': 56, 'demand': 1}, {'item_id': 16, 'width': 74, 'demand': 1}]}","[{'12': 2, '14': 1}, {'10': 1, '11': 1}, {'9': 1, '15': 1}, {'8': 1, '15': 1}, {'8': 1, '15': 1}, {'6': 1, '13': 2}, {'4': 1, '11': 1}, {'4': 1, '11': 1}, {'3': 1, '8': 1, '13': 1}, {'3': 1, '8': 1, '13': 1}, {'3': 1, '6': 1}, {'3': 1, '6': 1}, {'3': 1, '6': 1}, {'2': 1, '16': 1}, {'2': 1, '5': 1}, {'2': 1, '5': 1}, {'2': 2}, {'1': 1, '7': 1}]",20,json,1
CSP,CSP,"I was watching a flooring crew figure out how to slice long rolls of vinyl into the exact plank lengths they need for an install. The crew has rolls of a fixed length and a list of plank sizes with how many of each are needed, so the choice is how to cut each roll into pieces so every required plank is produced exactly β€” no missing pieces and no extra duplicates. A better cutting plan is simply the one that uses fewer full rolls: evaluate any plan by counting how many rolls get opened and cut. The cuts taken from any single roll can’t add up to more than the roll’s length, and the concrete plank sizes and counts are listed below.

# roll_length=150.0
plank_type_id,plank_length,required_count
1,47,2
2,38,3
3,59,3
4,60,1
5,100,3
6,83,2
7,94,4
8,21,1
9,70,3
10,42,1
11,28,1
12,64,2
13,87,2
14,93,1
15,95,2
16,25,1
17,49,2
18,79,2

If you want to sketch out a cutting plan, just stick to this simple JSON shape so it's easy to read and check.

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of each object in the solution array as one opened roll and the little pairs inside as ""this many pieces of that plank type were cut from this roll."" The ""<item_id>"" placeholder is where you put the plank identifier from the instance, and the numbers are counts. The ""..."" just means you can list as many rolls (objects) as you need. This is only a sketch of the expected shape, not the actual cutting plan.

Please use the exact identifiers from the instance input β€” do not rename them or invent new labels.  
Valid identifiers look like plain numbers such as ""1"" or ""23"", single capital letters like ""A"" or ""B"", or a capital letter followed by digits like ""A1"" or ""X7"".","{'weights': [47, 38, 59, 60, 100, 83, 94, 21, 70, 42, 28, 64, 87, 93, 95, 25, 49, 79], 'demands': [2, 3, 3, 1, 3, 2, 4, 1, 3, 1, 1, 2, 2, 1, 2, 1, 2, 2], 'solution_patterns': [{'9': 1, '13': 1}, {'8': 1, '17': 1}, {'8': 1, '17': 1}, {'8': 1, '11': 1}, {'6': 1, '7': 1, '15': 1}, {'5': 1, '11': 1}, {'4': 1, '16': 1}, {'4': 1, '16': 1}, {'4': 1, '16': 1}, {'3': 1, '5': 1}, {'2': 1, '12': 1}, {'2': 1, '12': 1}, {'2': 2, '10': 1}, {'1': 1, '6': 1}, {'1': 1, '6': 1}, {'1': 1, '6': 1}, {'0': 1, '14': 1}, {'0': 1, '14': 1}], 'obj': 18, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'9': 1, '13': 1}, {'8': 1, '17': 1}, {'8': 1, '17': 1}, {'8': 1, '11': 1}, {'6': 1, '7': 1, '15': 1}, {'5': 1, '11': 1}, {'4': 1, '16': 1}, {'4': 1, '16': 1}, {'4': 1, '16': 1}, {'3': 1, '5': 1}, {'2': 1, '12': 1}, {'2': 1, '12': 1}, {'2': 2, '10': 1}, {'1': 1, '6': 1}, {'1': 1, '6': 1}, {'1': 1, '6': 1}, {'0': 1, '14': 1}, {'0': 1, '14': 1}]",18,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 18, 'items': [{'item_id': 1, 'width': 47, 'demand': 2}, {'item_id': 2, 'width': 38, 'demand': 3}, {'item_id': 3, 'width': 59, 'demand': 3}, {'item_id': 4, 'width': 60, 'demand': 1}, {'item_id': 5, 'width': 100, 'demand': 3}, {'item_id': 6, 'width': 83, 'demand': 2}, {'item_id': 7, 'width': 94, 'demand': 4}, {'item_id': 8, 'width': 21, 'demand': 1}, {'item_id': 9, 'width': 70, 'demand': 3}, {'item_id': 10, 'width': 42, 'demand': 1}, {'item_id': 11, 'width': 28, 'demand': 1}, {'item_id': 12, 'width': 64, 'demand': 2}, {'item_id': 13, 'width': 87, 'demand': 2}, {'item_id': 14, 'width': 93, 'demand': 1}, {'item_id': 15, 'width': 95, 'demand': 2}, {'item_id': 16, 'width': 25, 'demand': 1}, {'item_id': 17, 'width': 49, 'demand': 2}, {'item_id': 18, 'width': 79, 'demand': 2}]}","[{'10': 1, '14': 1}, {'9': 1, '18': 1}, {'9': 1, '18': 1}, {'9': 1, '12': 1}, {'7': 1, '8': 1, '16': 1}, {'6': 1, '12': 1}, {'5': 1, '17': 1}, {'5': 1, '17': 1}, {'5': 1, '17': 1}, {'4': 1, '6': 1}, {'3': 1, '13': 1}, {'3': 1, '13': 1}, {'3': 2, '11': 1}, {'2': 1, '7': 1}, {'2': 1, '7': 1}, {'2': 1, '7': 1}, {'1': 1, '15': 1}, {'1': 1, '15': 1}]",21,csv,1
CSP,CSP,"Someone in the shop is planning a run of dowel parts and is staring at a stack of identical-length bars and a checklist of required short pieces. The choice is which cuts to make on each bar β€” what mix of lengths to put on one bar β€” in a way that produces the exact number of each piece and doesn’t leave anything out or produce extras. The neatest plan is the one that means fewer whole bars get pulled from stock, so you count bars used to see which plan is best. The detailed part sizes and counts follow below.

Each standard bar is 150.0 long.
For part 1, cut 2 pieces each 64 long.
For part 2, cut 2 pieces each 51 long.
For part 3, cut 2 pieces each 60 long.
For part 4, cut 1 pieces each 73 long.
For part 5, cut 1 pieces each 71 long.
For part 6, cut 2 pieces each 65 long.
For part 7, cut 4 pieces each 58 long.
For part 8, cut 4 pieces each 57 long.
For part 9, cut 2 pieces each 37 long.
For part 10, cut 3 pieces each 100 long.
For part 11, cut 3 pieces each 97 long.
For part 12, cut 3 pieces each 69 long.
For part 13, cut 4 pieces each 91 long.
For part 14, cut 1 pieces each 48 long.
For part 15, cut 2 pieces each 81 long.
For part 16, cut 1 pieces each 21 long.
For part 17, cut 1 pieces each 87 long.
They will count how many 150.0-length bars the plan uses and pick the plan that pulls the fewest bars from stock.

If you'd like the cut plan in a simple, machine-friendly form, send it in this little JSON shape so I can read it easily:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of that as a list of bars (the ""solution"" array). Each object in the list is one bar: the keys inside are the piece identifiers and the numbers are how many of that piece go on that bar. The ellipsis just means ""and so on"" β€” more bars can follow in the same format. This is just a sketch of the shape I expect, not the final plan.

Please make sure every identifier you use matches the instance input exactly β€” do not rename or invent labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [64, 51, 60, 73, 71, 65, 58, 57, 37, 100, 97, 69, 91, 48, 81, 21, 87], 'demands': [2, 2, 2, 1, 1, 2, 4, 4, 2, 3, 3, 3, 4, 1, 2, 1, 1], 'solution_patterns': [{'11': 1, '14': 1}, {'9': 1, '15': 1}, {'9': 1, '13': 1}, {'8': 1, '10': 1}, {'8': 1, '9': 1}, {'7': 1, '12': 1}, {'7': 1, '12': 1}, {'7': 1, '12': 1}, {'7': 1, '12': 1}, {'6': 2, '15': 1}, {'6': 2, '15': 1}, {'5': 2}, {'4': 1, '11': 1}, {'2': 1, '16': 1}, {'2': 1, '3': 1}, {'1': 1, '10': 1}, {'1': 1, '10': 1}, {'0': 1, '14': 1}, {'0': 1, '11': 1}], 'obj': 19, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'11': 1, '14': 1}, {'9': 1, '15': 1}, {'9': 1, '13': 1}, {'8': 1, '10': 1}, {'8': 1, '9': 1}, {'7': 1, '12': 1}, {'7': 1, '12': 1}, {'7': 1, '12': 1}, {'7': 1, '12': 1}, {'6': 2, '15': 1}, {'6': 2, '15': 1}, {'5': 2}, {'4': 1, '11': 1}, {'2': 1, '16': 1}, {'2': 1, '3': 1}, {'1': 1, '10': 1}, {'1': 1, '10': 1}, {'0': 1, '14': 1}, {'0': 1, '11': 1}]",19,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 17, 'items': [{'item_id': 1, 'width': 64, 'demand': 2}, {'item_id': 2, 'width': 51, 'demand': 2}, {'item_id': 3, 'width': 60, 'demand': 2}, {'item_id': 4, 'width': 73, 'demand': 1}, {'item_id': 5, 'width': 71, 'demand': 1}, {'item_id': 6, 'width': 65, 'demand': 2}, {'item_id': 7, 'width': 58, 'demand': 4}, {'item_id': 8, 'width': 57, 'demand': 4}, {'item_id': 9, 'width': 37, 'demand': 2}, {'item_id': 10, 'width': 100, 'demand': 3}, {'item_id': 11, 'width': 97, 'demand': 3}, {'item_id': 12, 'width': 69, 'demand': 3}, {'item_id': 13, 'width': 91, 'demand': 4}, {'item_id': 14, 'width': 48, 'demand': 1}, {'item_id': 15, 'width': 81, 'demand': 2}, {'item_id': 16, 'width': 21, 'demand': 1}, {'item_id': 17, 'width': 87, 'demand': 1}]}","[{'12': 1, '15': 1}, {'10': 1, '16': 1}, {'10': 1, '14': 1}, {'9': 1, '11': 1}, {'9': 1, '10': 1}, {'8': 1, '13': 1}, {'8': 1, '13': 1}, {'8': 1, '13': 1}, {'8': 1, '13': 1}, {'7': 2, '16': 1}, {'7': 2, '16': 1}, {'6': 2}, {'5': 1, '12': 1}, {'3': 1, '17': 1}, {'3': 1, '4': 1}, {'2': 1, '11': 1}, {'2': 1, '11': 1}, {'1': 1, '15': 1}, {'1': 1, '12': 1}]",22,nl,1
CSP,CSP,"A packaging technician is faced with bundles of orders and identical reels and has to decide how to split each reel into the requested strip lengths. The aim is clear in practice: produce every required strip (no missing pieces, no extras) and do it while using as few reels as possible β€” simply count the reels to see how efficient the plan is. The detailed sizes and order quantities appear below.

# reel_usable_length=150.0
strip_type_id,strip_length,quantity_required
1,84,1
2,64,2
3,82,2
4,62,1
5,86,1
6,34,2
7,92,2
8,47,1
9,32,1
10,37,2
11,60,2
12,63,1
13,25,1
14,79,2
15,70,2
16,33,2
17,61,1
18,27,1
19,94,2
20,88,2

You can just hand me the plan in a tiny JSON object like this β€” nothing fancy, just the shape I expect:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of ""solution"" as a list of reels (one object per reel) and each object as the little inventory of item identifiers cut from that reel. This is just a sketch of the shape I want, not the actual packing plan β€” fill it in with the real identifiers from the instance.

Please make sure all identifiers in your final submission are used exactly as they appear in the instance input β€” no renaming and no new labels. 

- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'weights': [84, 64, 82, 62, 86, 34, 92, 47, 32, 37, 60, 63, 25, 79, 70, 33, 61, 27, 94, 88], 'demands': [1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2], 'solution_patterns': [{'13': 1, '14': 1}, {'13': 1, '14': 1}, {'10': 1, '19': 1}, {'10': 1, '19': 1}, {'9': 2, '14': 1}, {'6': 1, '8': 1, '12': 1}, {'6': 1, '7': 1}, {'5': 1, '18': 1}, {'5': 1, '18': 1}, {'3': 1, '16': 1, '17': 1}, {'2': 1, '15': 2}, {'1': 1, '4': 1}, {'1': 1, '2': 1}, {'0': 1, '11': 1}], 'obj': 14, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'13': 1, '14': 1}, {'13': 1, '14': 1}, {'10': 1, '19': 1}, {'10': 1, '19': 1}, {'9': 2, '14': 1}, {'6': 1, '8': 1, '12': 1}, {'6': 1, '7': 1}, {'5': 1, '18': 1}, {'5': 1, '18': 1}, {'3': 1, '16': 1, '17': 1}, {'2': 1, '15': 2}, {'1': 1, '4': 1}, {'1': 1, '2': 1}, {'0': 1, '11': 1}]",14,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 20, 'items': [{'item_id': 1, 'width': 84, 'demand': 1}, {'item_id': 2, 'width': 64, 'demand': 2}, {'item_id': 3, 'width': 82, 'demand': 2}, {'item_id': 4, 'width': 62, 'demand': 1}, {'item_id': 5, 'width': 86, 'demand': 1}, {'item_id': 6, 'width': 34, 'demand': 2}, {'item_id': 7, 'width': 92, 'demand': 2}, {'item_id': 8, 'width': 47, 'demand': 1}, {'item_id': 9, 'width': 32, 'demand': 1}, {'item_id': 10, 'width': 37, 'demand': 2}, {'item_id': 11, 'width': 60, 'demand': 2}, {'item_id': 12, 'width': 63, 'demand': 1}, {'item_id': 13, 'width': 25, 'demand': 1}, {'item_id': 14, 'width': 79, 'demand': 2}, {'item_id': 15, 'width': 70, 'demand': 2}, {'item_id': 16, 'width': 33, 'demand': 2}, {'item_id': 17, 'width': 61, 'demand': 1}, {'item_id': 18, 'width': 27, 'demand': 1}, {'item_id': 19, 'width': 94, 'demand': 2}, {'item_id': 20, 'width': 88, 'demand': 2}]}","[{'14': 1, '15': 1}, {'14': 1, '15': 1}, {'11': 1, '20': 1}, {'11': 1, '20': 1}, {'10': 2, '15': 1}, {'7': 1, '9': 1, '13': 1}, {'7': 1, '8': 1}, {'6': 1, '19': 1}, {'6': 1, '19': 1}, {'4': 1, '17': 1, '18': 1}, {'3': 1, '16': 2}, {'2': 1, '5': 1}, {'2': 1, '3': 1}, {'1': 1, '12': 1}]",23,csv,1
CSP,CSP,"Out on the waterfront the carpenter looks at the standard-length timber and a sheet that says exactly how many slats of each length are needed. The choice at hand is how to cut each timber so the build list is met exactly β€” every slat on the sheet must be cut the right number of times and nothing can be left out or made extra β€” while keeping the number of timbers used as low as possible. You measure success simply by counting the timbers consumed; a smaller count is the goal. The detailed lengths and counts follow below.

- **standard_timber_length**: 150.0

| slat_type_id | slat_length | quantity_required |
|---|---|---|
| A | 62 | 2 |
| B | 84 | 1 |
| C | 94 | 1 |
| D | 27 | 1 |
| E | 28 | 1 |
| F | 76 | 2 |
| G | 24 | 1 |
| H | 71 | 1 |
| I | 22 | 3 |
| J | 92 | 2 |
| K | 63 | 2 |
| L | 97 | 2 |
| M | 34 | 3 |
| N | 47 | 1 |
| O | 95 | 3 |
| P | 55 | 2 |
| Q | 96 | 1 |
| R | 68 | 2 |
| S | 65 | 1 |
| T | 52 | 1 |
| U | 74 | 1 |
| V | 51 | 4 |

If you want to hand me a cutting plan, just follow this simple JSON shape so it's easy to read and check.

{
  ""solution"": [
    {""<slat_type_id>"": 2, ""<slat_type_id>"": 1},
    ...
  ]
}

Think of that as a little form: ""solution"" is the list of timbers you cut. Each object in the list is one timber and the placeholder keys (like <slat_type_id>) stand for the different slat types, with the numbers showing how many pieces of that type come from that timber. It's just a sketch of the shape I expect, not the real answer itself.

Please use the exact identifiers from the instance input β€” don't rename them and don't invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'weights': [62, 84, 94, 27, 28, 76, 24, 71, 22, 92, 63, 97, 34, 47, 95, 55, 96, 68, 65, 52, 74, 51], 'demands': [2, 1, 1, 1, 1, 2, 1, 1, 3, 2, 2, 2, 3, 1, 3, 2, 1, 2, 1, 1, 1, 4], 'solution_patterns': [{'16': 1, '21': 1}, {'14': 1, '15': 1}, {'14': 1, '15': 1}, {'12': 1, '13': 1, '17': 1}, {'11': 1, '21': 1}, {'11': 1, '21': 1}, {'9': 1, '19': 1}, {'6': 1, '9': 1, '12': 1}, {'5': 1, '20': 1}, {'5': 1, '7': 1}, {'4': 1, '17': 1, '21': 1}, {'3': 1, '4': 1, '14': 1}, {'2': 1, '8': 1, '12': 1}, {'1': 1, '18': 1}, {'0': 1, '8': 1, '10': 1}, {'0': 1, '8': 1, '10': 1}], 'obj': 16, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'16': 1, '21': 1}, {'14': 1, '15': 1}, {'14': 1, '15': 1}, {'12': 1, '13': 1, '17': 1}, {'11': 1, '21': 1}, {'11': 1, '21': 1}, {'9': 1, '19': 1}, {'6': 1, '9': 1, '12': 1}, {'5': 1, '20': 1}, {'5': 1, '7': 1}, {'4': 1, '17': 1, '21': 1}, {'3': 1, '4': 1, '14': 1}, {'2': 1, '8': 1, '12': 1}, {'1': 1, '18': 1}, {'0': 1, '8': 1, '10': 1}, {'0': 1, '8': 1, '10': 1}]",16,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 22, 'items': [{'item_id': 'A', 'width': 62, 'demand': 2}, {'item_id': 'B', 'width': 84, 'demand': 1}, {'item_id': 'C', 'width': 94, 'demand': 1}, {'item_id': 'D', 'width': 27, 'demand': 1}, {'item_id': 'E', 'width': 28, 'demand': 1}, {'item_id': 'F', 'width': 76, 'demand': 2}, {'item_id': 'G', 'width': 24, 'demand': 1}, {'item_id': 'H', 'width': 71, 'demand': 1}, {'item_id': 'I', 'width': 22, 'demand': 3}, {'item_id': 'J', 'width': 92, 'demand': 2}, {'item_id': 'K', 'width': 63, 'demand': 2}, {'item_id': 'L', 'width': 97, 'demand': 2}, {'item_id': 'M', 'width': 34, 'demand': 3}, {'item_id': 'N', 'width': 47, 'demand': 1}, {'item_id': 'O', 'width': 95, 'demand': 3}, {'item_id': 'P', 'width': 55, 'demand': 2}, {'item_id': 'Q', 'width': 96, 'demand': 1}, {'item_id': 'R', 'width': 68, 'demand': 2}, {'item_id': 'S', 'width': 65, 'demand': 1}, {'item_id': 'T', 'width': 52, 'demand': 1}, {'item_id': 'U', 'width': 74, 'demand': 1}, {'item_id': 'V', 'width': 51, 'demand': 4}]}","[{'Q': 1, 'V': 1}, {'O': 1, 'P': 1}, {'O': 1, 'P': 1}, {'M': 1, 'N': 1, 'R': 1}, {'L': 1, 'V': 1}, {'L': 1, 'V': 1}, {'J': 1, 'T': 1}, {'G': 1, 'J': 1, 'M': 1}, {'F': 1, 'U': 1}, {'F': 1, 'H': 1}, {'E': 1, 'R': 1, 'V': 1}, {'D': 1, 'E': 1, 'O': 1}, {'C': 1, 'I': 1, 'M': 1}, {'B': 1, 'S': 1}, {'A': 1, 'I': 1, 'K': 1}, {'A': 1, 'I': 1, 'K': 1}]",24,markdown_table,names
CSP,CSP,"I run a small bindery and every week I have to decide how to slice up long paper rolls into a bunch of fixed-size signatures so each print run gets exactly the number of copies it needs. The choice is which combination of signature lengths to cut from each roll so that nothing is missing or double-counted, and the measure of success is simple: count how many whole rolls were used β€” the fewer rolls the better. Any leftover scrap on a roll is okay, but every required signature must be produced in full, with no shortages or duplicates. The concrete details are shown below.

# roll_length=150.0
signature_id,signature_length,quantity_required
1,69,1
2,75,2
3,81,1
4,21,2
5,26,1
6,98,3
7,51,1
8,76,2
9,64,2
10,80,1
11,22,3
12,94,2
13,40,2
14,59,3
15,67,1
16,73,1

If it helps, I usually send the result back in a tiny JSON snippet like this so it's easy to read and import:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Pretty straightforward: ""solution"" is a list where each entry is one roll and the pairs inside say which signature types and how many of each were cut from that roll. Think of each object as a little packing list for a single paper roll. This is just a sketch of the shape I expect β€” not the final, concrete answer.

Please remember: all identifiers in your actual reply must match the instance input exactly β€” do not rename them or invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”. ""","{'weights': [69, 75, 81, 21, 26, 98, 51, 76, 64, 80, 22, 94, 40, 59, 67, 73], 'demands': [1, 2, 1, 2, 1, 3, 1, 2, 2, 1, 3, 2, 2, 3, 1, 1], 'solution_patterns': [{'8': 1, '10': 1, '13': 1}, {'8': 1, '10': 1, '13': 1}, {'7': 1, '15': 1}, {'7': 1, '13': 1}, {'5': 1, '12': 1}, {'5': 1, '12': 1}, {'5': 1, '6': 1}, {'4': 1, '10': 1, '11': 1}, {'3': 2, '11': 1}, {'2': 1, '14': 1}, {'1': 2}, {'0': 1, '9': 1}], 'obj': 12, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'8': 1, '10': 1, '13': 1}, {'8': 1, '10': 1, '13': 1}, {'7': 1, '15': 1}, {'7': 1, '13': 1}, {'5': 1, '12': 1}, {'5': 1, '12': 1}, {'5': 1, '6': 1}, {'4': 1, '10': 1, '11': 1}, {'3': 2, '11': 1}, {'2': 1, '14': 1}, {'1': 2}, {'0': 1, '9': 1}]",12,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 16, 'items': [{'item_id': 1, 'width': 69, 'demand': 1}, {'item_id': 2, 'width': 75, 'demand': 2}, {'item_id': 3, 'width': 81, 'demand': 1}, {'item_id': 4, 'width': 21, 'demand': 2}, {'item_id': 5, 'width': 26, 'demand': 1}, {'item_id': 6, 'width': 98, 'demand': 3}, {'item_id': 7, 'width': 51, 'demand': 1}, {'item_id': 8, 'width': 76, 'demand': 2}, {'item_id': 9, 'width': 64, 'demand': 2}, {'item_id': 10, 'width': 80, 'demand': 1}, {'item_id': 11, 'width': 22, 'demand': 3}, {'item_id': 12, 'width': 94, 'demand': 2}, {'item_id': 13, 'width': 40, 'demand': 2}, {'item_id': 14, 'width': 59, 'demand': 3}, {'item_id': 15, 'width': 67, 'demand': 1}, {'item_id': 16, 'width': 73, 'demand': 1}]}","[{'9': 1, '11': 1, '14': 1}, {'9': 1, '11': 1, '14': 1}, {'8': 1, '16': 1}, {'8': 1, '14': 1}, {'6': 1, '13': 1}, {'6': 1, '13': 1}, {'6': 1, '7': 1}, {'5': 1, '11': 1, '12': 1}, {'4': 2, '12': 1}, {'3': 1, '15': 1}, {'2': 2}, {'1': 1, '10': 1}]",25,csv,1
CSP,CSP,"There’s a workshop manager who spends part of every day planning how to cut full-size ceramic slabs into a bunch of smaller strip pieces customers asked for. The choice is which strips to cut from which slab so every single customer quantity is satisfied, nothing is left unmade or made twice, and no slab is overused beyond its length. Success is measured by the number of slabs used β€” the lower that number, the better the plan, so just tally the slabs to compare options. The concrete order list and slab size are shown below.

- **slab_length**: 150.0

| strip_type_id | strip_length | quantity_required |
|---|---|---|
| 1 | 77 | 3 |
| 2 | 98 | 2 |
| 3 | 26 | 2 |
| 4 | 37 | 1 |
| 5 | 44 | 3 |
| 6 | 31 | 3 |
| 7 | 85 | 1 |
| 8 | 23 | 1 |
| 9 | 96 | 4 |
| 10 | 82 | 4 |
| 11 | 64 | 2 |
| 12 | 80 | 1 |
| 13 | 73 | 4 |
| 14 | 32 | 4 |
| 15 | 60 | 3 |
| 16 | 58 | 1 |
| 17 | 61 | 5 |
| 18 | 87 | 2 |
| 19 | 52 | 3 |
| 20 | 57 | 2 |
| 21 | 21 | 1 |

If you want to share a cutting plan, just use a tiny JSON sketch like the one below β€” nothing fancy, just a straightforward shape so I know how you’re grouping strips on each full slab.

{
  ""solution"": [
    {""<strip_type_id>"": 2, ""<strip_type_id>"": 1},
    ...
  ]
}

Here’s what that little form means in plain language: the top-level ""solution"" holds a list of slabs (one object per slab). Each object lists which strip types and quantities are cut from that slab β€” the angled-bracket placeholders stand in for the strip type identifiers and the numbers are how many of that type go on that slab. Think of it as a one-line record per slab: which types, how many of each.

This JSON is just the expected shape, not the final answer β€” a template to fill in with the actual labels and counts.

Please use the exact identifiers given in the instance input β€” don’t rename them or invent new labels. For example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'weights': [77, 98, 26, 37, 44, 31, 85, 23, 96, 82, 64, 80, 73, 32, 60, 58, 61, 87, 52, 57, 21], 'demands': [3, 2, 2, 1, 3, 3, 1, 1, 4, 4, 2, 1, 4, 4, 3, 1, 5, 2, 3, 2, 1], 'solution_patterns': [{'16': 1, '17': 1}, {'16': 1, '17': 1}, {'13': 1, '14': 1, '15': 1}, {'11': 1, '16': 1}, {'9': 1, '14': 1}, {'9': 1, '10': 1}, {'9': 1, '10': 1}, {'8': 1, '18': 1}, {'8': 1, '18': 1}, {'8': 1, '13': 1, '20': 1}, {'6': 1, '13': 2}, {'5': 1, '16': 1, '19': 1}, {'5': 1, '16': 1, '19': 1}, {'5': 1, '7': 1, '8': 1}, {'4': 1, '12': 1, '13': 1}, {'4': 2, '14': 1}, {'3': 1, '5': 1, '9': 1}, {'1': 1, '18': 1}, {'1': 1, '2': 2}, {'0': 1, '12': 1}, {'0': 1, '12': 1}, {'0': 1, '12': 1}], 'obj': 22, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'16': 1, '17': 1}, {'16': 1, '17': 1}, {'13': 1, '14': 1, '15': 1}, {'11': 1, '16': 1}, {'9': 1, '14': 1}, {'9': 1, '10': 1}, {'9': 1, '10': 1}, {'8': 1, '18': 1}, {'8': 1, '18': 1}, {'8': 1, '13': 1, '20': 1}, {'6': 1, '13': 2}, {'5': 1, '16': 1, '19': 1}, {'5': 1, '16': 1, '19': 1}, {'5': 1, '7': 1, '8': 1}, {'4': 1, '12': 1, '13': 1}, {'4': 2, '14': 1}, {'3': 1, '5': 1, '9': 1}, {'1': 1, '18': 1}, {'1': 1, '2': 2}, {'0': 1, '12': 1}, {'0': 1, '12': 1}, {'0': 1, '12': 1}]",22,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 21, 'items': [{'item_id': 1, 'width': 77, 'demand': 3}, {'item_id': 2, 'width': 98, 'demand': 2}, {'item_id': 3, 'width': 26, 'demand': 2}, {'item_id': 4, 'width': 37, 'demand': 1}, {'item_id': 5, 'width': 44, 'demand': 3}, {'item_id': 6, 'width': 31, 'demand': 3}, {'item_id': 7, 'width': 85, 'demand': 1}, {'item_id': 8, 'width': 23, 'demand': 1}, {'item_id': 9, 'width': 96, 'demand': 4}, {'item_id': 10, 'width': 82, 'demand': 4}, {'item_id': 11, 'width': 64, 'demand': 2}, {'item_id': 12, 'width': 80, 'demand': 1}, {'item_id': 13, 'width': 73, 'demand': 4}, {'item_id': 14, 'width': 32, 'demand': 4}, {'item_id': 15, 'width': 60, 'demand': 3}, {'item_id': 16, 'width': 58, 'demand': 1}, {'item_id': 17, 'width': 61, 'demand': 5}, {'item_id': 18, 'width': 87, 'demand': 2}, {'item_id': 19, 'width': 52, 'demand': 3}, {'item_id': 20, 'width': 57, 'demand': 2}, {'item_id': 21, 'width': 21, 'demand': 1}]}","[{'17': 1, '18': 1}, {'17': 1, '18': 1}, {'14': 1, '15': 1, '16': 1}, {'12': 1, '17': 1}, {'10': 1, '15': 1}, {'10': 1, '11': 1}, {'10': 1, '11': 1}, {'9': 1, '19': 1}, {'9': 1, '19': 1}, {'9': 1, '14': 1, '21': 1}, {'7': 1, '14': 2}, {'6': 1, '17': 1, '20': 1}, {'6': 1, '17': 1, '20': 1}, {'6': 1, '8': 1, '9': 1}, {'5': 1, '13': 1, '14': 1}, {'5': 2, '15': 1}, {'4': 1, '6': 1, '10': 1}, {'2': 1, '19': 1}, {'2': 1, '3': 2}, {'1': 1, '13': 1}, {'1': 1, '13': 1}, {'1': 1, '13': 1}]",26,markdown_table,1
CSP,CSP,"Out in the workshop someone’s balancing a pile of rolls against a list of strap sizes and quantities, trying to plan the cutting. The question is how to split each standard-length roll into the needed pieces so all strap demands are met exactly (no leftovers counted as items, no shortfalls), and so the team doesn’t go through more rolls than necessary. The simple measure of success is the total rolls consumed β€” lower is better β€” and the full item sizes and counts follow below.

{
  ""roll_length"": 150.0,
  ""items"": [
    {
      ""strap_id"": ""A"",
      ""strap_length"": 82,
      ""required_quantity"": 1
    },
    {
      ""strap_id"": ""B"",
      ""strap_length"": 80,
      ""required_quantity"": 1
    },
    {
      ""strap_id"": ""C"",
      ""strap_length"": 40,
      ""required_quantity"": 2
    },
    {
      ""strap_id"": ""D"",
      ""strap_length"": 78,
      ""required_quantity"": 1
    },
    {
      ""strap_id"": ""E"",
      ""strap_length"": 88,
      ""required_quantity"": 2
    },
    {
      ""strap_id"": ""F"",
      ""strap_length"": 96,
      ""required_quantity"": 2
    },
    {
      ""strap_id"": ""G"",
      ""strap_length"": 25,
      ""required_quantity"": 1
    },
    {
      ""strap_id"": ""H"",
      ""strap_length"": 24,
      ""required_quantity"": 1
    },
    {
      ""strap_id"": ""I"",
      ""strap_length"": 56,
      ""required_quantity"": 2
    },
    {
      ""strap_id"": ""J"",
      ""strap_length"": 84,
      ""required_quantity"": 4
    },
    {
      ""strap_id"": ""K"",
      ""strap_length"": 83,
      ""required_quantity"": 1
    },
    {
      ""strap_id"": ""L"",
      ""strap_length"": 28,
      ""required_quantity"": 3
    },
    {
      ""strap_id"": ""M"",
      ""strap_length"": 44,
      ""required_quantity"": 1
    },
    {
      ""strap_id"": ""N"",
      ""strap_length"": 65,
      ""required_quantity"": 1
    },
    {
      ""strap_id"": ""O"",
      ""strap_length"": 95,
      ""required_quantity"": 3
    },
    {
      ""strap_id"": ""P"",
      ""strap_length"": 99,
      ""required_quantity"": 2
    },
    {
      ""strap_id"": ""Q"",
      ""strap_length"": 62,
      ""required_quantity"": 1
    },
    {
      ""strap_id"": ""R"",
      ""strap_length"": 41,
      ""required_quantity"": 2
    },
    {
      ""strap_id"": ""S"",
      ""strap_length"": 89,
      ""required_quantity"": 1
    },
    {
      ""strap_id"": ""T"",
      ""strap_length"": 36,
      ""required_quantity"": 1
    },
    {
      ""strap_id"": ""U"",
      ""strap_length"": 73,
      ""required_quantity"": 2
    },
    {
      ""strap_id"": ""V"",
      ""strap_length"": 64,
      ""required_quantity"": 1
    },
    {
      ""strap_id"": ""W"",
      ""strap_length"": 39,
      ""required_quantity"": 3
    }
  ]
}

Oh, and one more thing β€” when you send the actual plan back, please follow this simple JSON shape so it's easy to parse. Here's the sketch of the layout I expect:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of ""solution"" as a list of cut patterns: each object in the array is one roll and the little pairs inside say how many pieces of each item type come from that roll. It's just a friendly template β€” not the final answer.

Please make sure to use the exact identifiers from the instance input β€” don't rename them or introduce new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [82, 80, 40, 78, 88, 96, 25, 24, 56, 84, 83, 28, 44, 65, 95, 99, 62, 41, 89, 36, 73, 64, 39], 'demands': [1, 1, 2, 1, 2, 2, 1, 1, 2, 4, 1, 3, 1, 1, 3, 2, 1, 2, 1, 1, 2, 1, 3], 'solution_patterns': [{'20': 2}, {'15': 1, '17': 1}, {'15': 1, '17': 1}, {'14': 1, '22': 1}, {'14': 1, '22': 1}, {'14': 1, '22': 1}, {'12': 1, '18': 1}, {'10': 1, '21': 1}, {'9': 1, '11': 1, '19': 1}, {'8': 1, '9': 1}, {'5': 1, '22': 1}, {'5': 1, '22': 1}, {'4': 1, '22': 1}, {'4': 1, '8': 1}, {'3': 1, '16': 1}, {'2': 1, '7': 1, '9': 1}, {'2': 1, '6': 1, '9': 1}, {'1': 1, '11': 2}, {'0': 1, '13': 1}], 'obj': 19, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'20': 2}, {'15': 1, '17': 1}, {'15': 1, '17': 1}, {'14': 1, '22': 1}, {'14': 1, '22': 1}, {'14': 1, '22': 1}, {'12': 1, '18': 1}, {'10': 1, '21': 1}, {'9': 1, '11': 1, '19': 1}, {'8': 1, '9': 1}, {'5': 1, '22': 1}, {'5': 1, '22': 1}, {'4': 1, '22': 1}, {'4': 1, '8': 1}, {'3': 1, '16': 1}, {'2': 1, '7': 1, '9': 1}, {'2': 1, '6': 1, '9': 1}, {'1': 1, '11': 2}, {'0': 1, '13': 1}]",19,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 23, 'items': [{'item_id': 'A', 'width': 82, 'demand': 1}, {'item_id': 'B', 'width': 80, 'demand': 1}, {'item_id': 'C', 'width': 40, 'demand': 2}, {'item_id': 'D', 'width': 78, 'demand': 1}, {'item_id': 'E', 'width': 88, 'demand': 2}, {'item_id': 'F', 'width': 96, 'demand': 2}, {'item_id': 'G', 'width': 25, 'demand': 1}, {'item_id': 'H', 'width': 24, 'demand': 1}, {'item_id': 'I', 'width': 56, 'demand': 2}, {'item_id': 'J', 'width': 84, 'demand': 4}, {'item_id': 'K', 'width': 83, 'demand': 1}, {'item_id': 'L', 'width': 28, 'demand': 3}, {'item_id': 'M', 'width': 44, 'demand': 1}, {'item_id': 'N', 'width': 65, 'demand': 1}, {'item_id': 'O', 'width': 95, 'demand': 3}, {'item_id': 'P', 'width': 99, 'demand': 2}, {'item_id': 'Q', 'width': 62, 'demand': 1}, {'item_id': 'R', 'width': 41, 'demand': 2}, {'item_id': 'S', 'width': 89, 'demand': 1}, {'item_id': 'T', 'width': 36, 'demand': 1}, {'item_id': 'U', 'width': 73, 'demand': 2}, {'item_id': 'V', 'width': 64, 'demand': 1}, {'item_id': 'W', 'width': 39, 'demand': 3}]}","[{'U': 2}, {'P': 1, 'R': 1}, {'P': 1, 'R': 1}, {'O': 1, 'W': 1}, {'O': 1, 'W': 1}, {'O': 1, 'W': 1}, {'M': 1, 'S': 1}, {'K': 1, 'V': 1}, {'J': 1, 'L': 1, 'T': 1}, {'I': 1, 'J': 1}, {'F': 1, 'W': 1}, {'F': 1, 'W': 1}, {'E': 1, 'W': 1}, {'E': 1, 'I': 1}, {'D': 1, 'Q': 1}, {'C': 1, 'H': 1, 'J': 1}, {'C': 1, 'G': 1, 'J': 1}, {'B': 1, 'L': 2}, {'A': 1, 'N': 1}]",27,json,names
CSP,CSP,"In a small framing shop the owner lays out long molding sticks and a stack of customer orders specifying how many side pieces of each length are needed. The choice is which cuts to make from each stick to complete every order, and the practical goal is to finish everything while using the smallest possible number of sticks β€” measure success by the total sticks used. It’s essential that each required piece is made to the right length and count; nothing can be left out or duplicated. The full details are listed below.

{
  ""molding_stick_length"": 150.0,
  ""items"": [
    {
      ""piece_type_id"": 0,
      ""piece_length"": 83,
      ""quantity_required"": 1
    },
    {
      ""piece_type_id"": 1,
      ""piece_length"": 59,
      ""quantity_required"": 2
    },
    {
      ""piece_type_id"": 2,
      ""piece_length"": 27,
      ""quantity_required"": 1
    },
    {
      ""piece_type_id"": 3,
      ""piece_length"": 56,
      ""quantity_required"": 2
    },
    {
      ""piece_type_id"": 4,
      ""piece_length"": 84,
      ""quantity_required"": 1
    },
    {
      ""piece_type_id"": 5,
      ""piece_length"": 48,
      ""quantity_required"": 1
    },
    {
      ""piece_type_id"": 6,
      ""piece_length"": 37,
      ""quantity_required"": 1
    },
    {
      ""piece_type_id"": 7,
      ""piece_length"": 57,
      ""quantity_required"": 1
    },
    {
      ""piece_type_id"": 8,
      ""piece_length"": 50,
      ""quantity_required"": 3
    },
    {
      ""piece_type_id"": 9,
      ""piece_length"": 61,
      ""quantity_required"": 1
    },
    {
      ""piece_type_id"": 10,
      ""piece_length"": 75,
      ""quantity_required"": 2
    },
    {
      ""piece_type_id"": 11,
      ""piece_length"": 52,
      ""quantity_required"": 1
    },
    {
      ""piece_type_id"": 12,
      ""piece_length"": 43,
      ""quantity_required"": 1
    },
    {
      ""piece_type_id"": 13,
      ""piece_length"": 51,
      ""quantity_required"": 4
    },
    {
      ""piece_type_id"": 14,
      ""piece_length"": 35,
      ""quantity_required"": 3
    },
    {
      ""piece_type_id"": 15,
      ""piece_length"": 41,
      ""quantity_required"": 2
    },
    {
      ""piece_type_id"": 16,
      ""piece_length"": 66,
      ""quantity_required"": 1
    },
    {
      ""piece_type_id"": 17,
      ""piece_length"": 76,
      ""quantity_required"": 2
    },
    {
      ""piece_type_id"": 18,
      ""piece_length"": 89,
      ""quantity_required"": 3
    },
    {
      ""piece_type_id"": 19,
      ""piece_length"": 34,
      ""quantity_required"": 3
    },
    {
      ""piece_type_id"": 20,
      ""piece_length"": 54,
      ""quantity_required"": 2
    }
  ]
}

If you want to hand me a cutting plan, a simple JSON outline like this is perfect β€” keeps things tidy and easy to read. Here’s the shape I expect:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of each object in the ""solution"" list as one stick and the little pairs inside show which piece types and how many of each come from that stick. It's just a friendly template to show the form your answer should take, not the actual cutting plan.

Remember to use the exact identifiers from the instance input β€” don't rename them or invent new labels.
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'weights': [83, 59, 27, 56, 84, 48, 37, 57, 50, 61, 75, 52, 43, 51, 35, 41, 66, 76, 89, 34, 54], 'demands': [1, 2, 1, 2, 1, 1, 1, 1, 3, 1, 2, 1, 1, 4, 3, 2, 1, 2, 3, 3, 2], 'solution_patterns': [{'15': 1, '20': 2}, {'14': 2, '17': 1}, {'13': 2, '15': 1}, {'12': 1, '14': 3}, {'10': 2}, {'9': 1, '11': 1, '19': 1}, {'8': 3}, {'6': 1, '17': 1, '19': 1}, {'5': 1, '13': 2}, {'4': 1, '7': 1}, {'3': 1, '18': 1}, {'2': 1, '18': 1, '19': 1}, {'1': 1, '18': 1}, {'1': 1, '3': 1, '19': 1}, {'0': 1, '16': 1}], 'obj': 15, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'15': 1, '20': 2}, {'14': 2, '17': 1}, {'13': 2, '15': 1}, {'12': 1, '14': 3}, {'10': 2}, {'9': 1, '11': 1, '19': 1}, {'8': 3}, {'6': 1, '17': 1, '19': 1}, {'5': 1, '13': 2}, {'4': 1, '7': 1}, {'3': 1, '18': 1}, {'2': 1, '18': 1, '19': 1}, {'1': 1, '18': 1}, {'1': 1, '3': 1, '19': 1}, {'0': 1, '16': 1}]",15,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 21, 'items': [{'item_id': 0, 'width': 83, 'demand': 1}, {'item_id': 1, 'width': 59, 'demand': 2}, {'item_id': 2, 'width': 27, 'demand': 1}, {'item_id': 3, 'width': 56, 'demand': 2}, {'item_id': 4, 'width': 84, 'demand': 1}, {'item_id': 5, 'width': 48, 'demand': 1}, {'item_id': 6, 'width': 37, 'demand': 1}, {'item_id': 7, 'width': 57, 'demand': 1}, {'item_id': 8, 'width': 50, 'demand': 3}, {'item_id': 9, 'width': 61, 'demand': 1}, {'item_id': 10, 'width': 75, 'demand': 2}, {'item_id': 11, 'width': 52, 'demand': 1}, {'item_id': 12, 'width': 43, 'demand': 1}, {'item_id': 13, 'width': 51, 'demand': 4}, {'item_id': 14, 'width': 35, 'demand': 3}, {'item_id': 15, 'width': 41, 'demand': 2}, {'item_id': 16, 'width': 66, 'demand': 1}, {'item_id': 17, 'width': 76, 'demand': 2}, {'item_id': 18, 'width': 89, 'demand': 3}, {'item_id': 19, 'width': 34, 'demand': 3}, {'item_id': 20, 'width': 54, 'demand': 2}]}","[{'15': 1, '20': 2}, {'14': 2, '17': 1}, {'13': 2, '15': 1}, {'12': 1, '14': 3}, {'10': 2}, {'9': 1, '11': 1, '19': 1}, {'8': 3}, {'6': 1, '17': 1, '19': 1}, {'5': 1, '13': 2}, {'4': 1, '7': 1}, {'3': 1, '18': 1}, {'2': 1, '18': 1, '19': 1}, {'1': 1, '18': 1}, {'1': 1, '3': 1, '19': 1}, {'0': 1, '16': 1}]",28,json,0
CSP,CSP,"I run a little deli and every week I get long cured sausage logs that need to be cut into specific portion lengths so every customer’s portion counts are filled. The choice is in how to slice each log so that every requested piece size and quantity is produced β€” nothing can be left out or counted twice β€” and the win is using as few whole sausage logs as possible. You can tell which plan is better simply by counting how many full logs it takes to meet all the orders. The exact portion lengths and counts are listed below.

- **sausage_log_length**: 150.0

| portion_label | portion_length | portion_count |
|---|---|---|
| 1 | 88 | 2 |
| 2 | 31 | 1 |
| 3 | 76 | 2 |
| 4 | 70 | 1 |
| 5 | 38 | 5 |
| 6 | 28 | 5 |
| 7 | 50 | 4 |
| 8 | 22 | 3 |
| 9 | 89 | 3 |
| 10 | 51 | 3 |
| 11 | 24 | 3 |
| 12 | 79 | 6 |
| 13 | 34 | 1 |
| 14 | 66 | 5 |
| 15 | 26 | 5 |
| 16 | 39 | 1 |
| 17 | 77 | 4 |
| 18 | 62 | 3 |
| 19 | 92 | 1 |
| 20 | 73 | 1 |
| 21 | 21 | 3 |
| 22 | 90 | 4 |
| 23 | 85 | 1 |
| 24 | 63 | 5 |
| 25 | 58 | 3 |

If you want to hand me a cutting plan, just drop it in a little JSON sketch like this β€” super simple and readable:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of ""solution"" as a list of whole sausage logs. Each object in that list is one log and the pairs inside show which portion types come out of that log and how many of each piece you get. The ""<item_id>"" placeholders stand in for the portion-type identifiers from the order, and the numbers are counts taken from that particular log. This is just the expected shape β€” a sketch β€” not the real answer.

Please make sure you use the exact identifiers from the instance input β€” don't rename them or invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'weights': [88, 31, 76, 70, 38, 28, 50, 22, 89, 51, 24, 79, 34, 66, 26, 39, 77, 62, 92, 73, 21, 90, 85, 63, 58], 'demands': [2, 1, 2, 1, 5, 5, 4, 3, 3, 3, 3, 6, 1, 5, 5, 1, 4, 3, 1, 1, 3, 4, 1, 5, 3], 'solution_patterns': [{'21': 1, '24': 1}, {'21': 1, '24': 1}, {'18': 1, '24': 1}, {'14': 1, '15': 1, '22': 1}, {'11': 1, '13': 1}, {'11': 1, '13': 1}, {'11': 1, '13': 1}, {'11': 1, '13': 1}, {'11': 1, '13': 1}, {'10': 1, '23': 2}, {'10': 1, '23': 2}, {'10': 1, '23': 2}, {'7': 1, '9': 1, '16': 1}, {'7': 1, '9': 1, '16': 1}, {'7': 1, '9': 1, '16': 1}, {'6': 3}, {'5': 2, '8': 1}, {'5': 2, '8': 1}, {'4': 1, '20': 1, '21': 1}, {'4': 1, '20': 1, '21': 1}, {'4': 1, '14': 4}, {'4': 1, '12': 1, '16': 1}, {'4': 1, '6': 1, '17': 1}, {'3': 1, '11': 1}, {'2': 1, '19': 1}, {'2': 1, '14': 2, '20': 1}, {'1': 1, '5': 1, '8': 1}, {'0': 1, '17': 1}, {'0': 1, '17': 1}], 'obj': 29, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'21': 1, '24': 1}, {'21': 1, '24': 1}, {'18': 1, '24': 1}, {'14': 1, '15': 1, '22': 1}, {'11': 1, '13': 1}, {'11': 1, '13': 1}, {'11': 1, '13': 1}, {'11': 1, '13': 1}, {'11': 1, '13': 1}, {'10': 1, '23': 2}, {'10': 1, '23': 2}, {'10': 1, '23': 2}, {'7': 1, '9': 1, '16': 1}, {'7': 1, '9': 1, '16': 1}, {'7': 1, '9': 1, '16': 1}, {'6': 3}, {'5': 2, '8': 1}, {'5': 2, '8': 1}, {'4': 1, '20': 1, '21': 1}, {'4': 1, '20': 1, '21': 1}, {'4': 1, '14': 4}, {'4': 1, '12': 1, '16': 1}, {'4': 1, '6': 1, '17': 1}, {'3': 1, '11': 1}, {'2': 1, '19': 1}, {'2': 1, '14': 2, '20': 1}, {'1': 1, '5': 1, '8': 1}, {'0': 1, '17': 1}, {'0': 1, '17': 1}]",29,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 25, 'items': [{'item_id': 1, 'width': 88, 'demand': 2}, {'item_id': 2, 'width': 31, 'demand': 1}, {'item_id': 3, 'width': 76, 'demand': 2}, {'item_id': 4, 'width': 70, 'demand': 1}, {'item_id': 5, 'width': 38, 'demand': 5}, {'item_id': 6, 'width': 28, 'demand': 5}, {'item_id': 7, 'width': 50, 'demand': 4}, {'item_id': 8, 'width': 22, 'demand': 3}, {'item_id': 9, 'width': 89, 'demand': 3}, {'item_id': 10, 'width': 51, 'demand': 3}, {'item_id': 11, 'width': 24, 'demand': 3}, {'item_id': 12, 'width': 79, 'demand': 6}, {'item_id': 13, 'width': 34, 'demand': 1}, {'item_id': 14, 'width': 66, 'demand': 5}, {'item_id': 15, 'width': 26, 'demand': 5}, {'item_id': 16, 'width': 39, 'demand': 1}, {'item_id': 17, 'width': 77, 'demand': 4}, {'item_id': 18, 'width': 62, 'demand': 3}, {'item_id': 19, 'width': 92, 'demand': 1}, {'item_id': 20, 'width': 73, 'demand': 1}, {'item_id': 21, 'width': 21, 'demand': 3}, {'item_id': 22, 'width': 90, 'demand': 4}, {'item_id': 23, 'width': 85, 'demand': 1}, {'item_id': 24, 'width': 63, 'demand': 5}, {'item_id': 25, 'width': 58, 'demand': 3}]}","[{'22': 1, '25': 1}, {'22': 1, '25': 1}, {'19': 1, '25': 1}, {'15': 1, '16': 1, '23': 1}, {'12': 1, '14': 1}, {'12': 1, '14': 1}, {'12': 1, '14': 1}, {'12': 1, '14': 1}, {'12': 1, '14': 1}, {'11': 1, '24': 2}, {'11': 1, '24': 2}, {'11': 1, '24': 2}, {'8': 1, '10': 1, '17': 1}, {'8': 1, '10': 1, '17': 1}, {'8': 1, '10': 1, '17': 1}, {'7': 3}, {'6': 2, '9': 1}, {'6': 2, '9': 1}, {'5': 1, '21': 1, '22': 1}, {'5': 1, '21': 1, '22': 1}, {'5': 1, '15': 4}, {'5': 1, '13': 1, '17': 1}, {'5': 1, '7': 1, '18': 1}, {'4': 1, '12': 1}, {'3': 1, '20': 1}, {'3': 1, '15': 2, '21': 1}, {'2': 1, '6': 1, '9': 1}, {'1': 1, '18': 1}, {'1': 1, '18': 1}]",29,markdown_table,1
CSP,CSP,"Someone in the sewing room needs to figure out how to chop up whole bolts of fabric into the various pattern parts so all customer orders are met. The task is to pick which pieces come off which bolt, keeping in mind that the lengths cut from any single bolt can’t exceed that bolt’s total length, and every requested piece and quantity must be produced, not more and not less. The easier-to-live-with solutions are the ones that consume the fewest bolts β€” just add up the bolts used; smaller totals are preferable. The specific measurements and quantities are shown below.

- **bolt_length**: 150.0

| pattern_piece_id | piece_length | quantity_required |
|---|---|---|
| 0 | 62 | 2 |
| 1 | 92 | 2 |
| 2 | 28 | 1 |
| 3 | 58 | 2 |
| 4 | 65 | 1 |
| 5 | 30 | 4 |
| 6 | 93 | 4 |
| 7 | 54 | 1 |
| 8 | 34 | 1 |
| 9 | 26 | 1 |
| 10 | 68 | 10 |
| 11 | 99 | 2 |
| 12 | 22 | 1 |
| 13 | 85 | 2 |
| 14 | 36 | 3 |
| 15 | 97 | 4 |

You can reply with a little JSON sketch like this so it's clear what shape I'm expecting:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of ""solution"" as a list of bolts and each object inside it as the pieces cut from that bolt: the placeholder keys are the piece types and the numbers are how many of that piece come off that bolt. It's just a template showing the layout β€” not the finished cutting plan.

Please make sure to use the exact item identifiers from the instance input β€” do not rename them or invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as ""1"" or ""23"", single capital letters like ""A"" or ""B"", or a capital letter followed by digits like ""A1"" or ""X7"".""","{'weights': [62, 92, 28, 58, 65, 30, 93, 54, 34, 26, 68, 99, 22, 85, 36, 97], 'demands': [2, 2, 1, 2, 1, 4, 4, 1, 1, 1, 10, 2, 1, 2, 3, 4], 'solution_patterns': [{'14': 1, '15': 1}, {'10': 2}, {'10': 2}, {'10': 2}, {'10': 2}, {'8': 1, '11': 1}, {'6': 1, '14': 1}, {'6': 1, '14': 1}, {'6': 1, '14': 1}, {'6': 1, '7': 1}, {'5': 1, '12': 1, '15': 1}, {'5': 1, '12': 1, '15': 1}, {'5': 1, '11': 1}, {'5': 1, '9': 1, '10': 1, '12': 1}, {'4': 1, '13': 1}, {'2': 1, '12': 1, '15': 1}, {'1': 1, '3': 1}, {'1': 1, '3': 1}, {'0': 1, '13': 1}, {'0': 1, '10': 1}], 'obj': 20, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'14': 1, '15': 1}, {'10': 2}, {'10': 2}, {'10': 2}, {'10': 2}, {'8': 1, '11': 1}, {'6': 1, '14': 1}, {'6': 1, '14': 1}, {'6': 1, '14': 1}, {'6': 1, '7': 1}, {'5': 1, '12': 1, '15': 1}, {'5': 1, '12': 1, '15': 1}, {'5': 1, '11': 1}, {'5': 1, '9': 1, '10': 1, '12': 1}, {'4': 1, '13': 1}, {'2': 1, '12': 1, '15': 1}, {'1': 1, '3': 1}, {'1': 1, '3': 1}, {'0': 1, '13': 1}, {'0': 1, '10': 1}]",20,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 16, 'items': [{'item_id': 0, 'width': 62, 'demand': 2}, {'item_id': 1, 'width': 92, 'demand': 2}, {'item_id': 2, 'width': 28, 'demand': 1}, {'item_id': 3, 'width': 58, 'demand': 2}, {'item_id': 4, 'width': 65, 'demand': 1}, {'item_id': 5, 'width': 30, 'demand': 4}, {'item_id': 6, 'width': 93, 'demand': 4}, {'item_id': 7, 'width': 54, 'demand': 1}, {'item_id': 8, 'width': 34, 'demand': 1}, {'item_id': 9, 'width': 26, 'demand': 1}, {'item_id': 10, 'width': 68, 'demand': 10}, {'item_id': 11, 'width': 99, 'demand': 2}, {'item_id': 12, 'width': 22, 'demand': 1}, {'item_id': 13, 'width': 85, 'demand': 2}, {'item_id': 14, 'width': 36, 'demand': 3}, {'item_id': 15, 'width': 97, 'demand': 4}]}","[{'14': 1, '15': 1}, {'10': 2}, {'10': 2}, {'10': 2}, {'10': 2}, {'8': 1, '11': 1}, {'6': 1, '14': 1}, {'6': 1, '14': 1}, {'6': 1, '14': 1}, {'6': 1, '7': 1}, {'5': 1, '12': 1, '15': 1}, {'5': 1, '12': 1, '15': 1}, {'5': 1, '11': 1}, {'5': 1, '9': 1, '10': 1, '12': 1}, {'4': 1, '13': 1}, {'2': 1, '12': 1, '15': 1}, {'1': 1, '3': 1}, {'1': 1, '3': 1}, {'0': 1, '13': 1}, {'0': 1, '10': 1}]",30,markdown_table,0
CSP,CSP,"Recently the team had to work out how best to slice standard-length rods into a mix of shorter bars for several parts. The question: how should each rod be cut so that every requested part appears in the correct quantity, no rod is asked to give more length than it actually has, and the total number of raw rods consumed is as low as possible. To judge options, just count the full rods each option needs β€” the lower that count, the smarter the cut plan. The concrete details are given below.

{
  ""standard_rod_length"": 150.0,
  ""items"": [
    {
      ""part_id"": 1,
      ""part_length"": 75,
      ""quantity_required"": 4
    },
    {
      ""part_id"": 2,
      ""part_length"": 94,
      ""quantity_required"": 3
    },
    {
      ""part_id"": 3,
      ""part_length"": 56,
      ""quantity_required"": 3
    },
    {
      ""part_id"": 4,
      ""part_length"": 64,
      ""quantity_required"": 7
    },
    {
      ""part_id"": 5,
      ""part_length"": 93,
      ""quantity_required"": 6
    },
    {
      ""part_id"": 6,
      ""part_length"": 34,
      ""quantity_required"": 4
    },
    {
      ""part_id"": 7,
      ""part_length"": 74,
      ""quantity_required"": 3
    },
    {
      ""part_id"": 8,
      ""part_length"": 69,
      ""quantity_required"": 4
    },
    {
      ""part_id"": 9,
      ""part_length"": 57,
      ""quantity_required"": 1
    },
    {
      ""part_id"": 10,
      ""part_length"": 31,
      ""quantity_required"": 4
    },
    {
      ""part_id"": 11,
      ""part_length"": 84,
      ""quantity_required"": 4
    },
    {
      ""part_id"": 12,
      ""part_length"": 50,
      ""quantity_required"": 1
    },
    {
      ""part_id"": 13,
      ""part_length"": 96,
      ""quantity_required"": 3
    },
    {
      ""part_id"": 14,
      ""part_length"": 76,
      ""quantity_required"": 4
    },
    {
      ""part_id"": 15,
      ""part_length"": 20,
      ""quantity_required"": 2
    },
    {
      ""part_id"": 16,
      ""part_length"": 59,
      ""quantity_required"": 2
    },
    {
      ""part_id"": 17,
      ""part_length"": 80,
      ""quantity_required"": 3
    }
  ]
}

You can just give the proposed cuts as a small JSON blob like this one β€” it's an easy way to list each rod and what pieces come from it:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of ""solution"" as a list of rods (one entry per raw rod). Each object inside the list shows which part types are cut from that rod and how many of each β€” the keys are placeholders for part types and the numbers are counts. This is just a sketch of the expected shape, not the actual answer.

Please make sure to use the exact identifiers shown in the instance input β€” don't rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [75, 94, 56, 64, 93, 34, 74, 69, 57, 31, 84, 50, 96, 76, 20, 59, 80], 'demands': [4, 3, 3, 7, 6, 4, 3, 4, 1, 4, 4, 1, 3, 4, 2, 2, 3], 'solution_patterns': [{'11': 1, '12': 1}, {'9': 1, '15': 2}, {'7': 1, '16': 1}, {'7': 1, '16': 1}, {'7': 1, '16': 1}, {'7': 1, '13': 1}, {'6': 1, '13': 1}, {'6': 1, '13': 1}, {'6': 1, '13': 1}, {'5': 1, '12': 1, '14': 1}, {'5': 1, '12': 1, '14': 1}, {'4': 1, '8': 1}, {'4': 1, '5': 1, '14': 1}, {'4': 1, '5': 1, '14': 1}, {'3': 1, '10': 1}, {'3': 1, '10': 1}, {'3': 1, '10': 1}, {'3': 1, '10': 1}, {'3': 2, '14': 1}, {'3': 2, '14': 1}, {'2': 1, '4': 1}, {'2': 1, '4': 1}, {'2': 1, '4': 1}, {'1': 1, '9': 1, '14': 1}, {'1': 1, '9': 1, '14': 1}, {'1': 1, '9': 1, '14': 1}, {'0': 2}, {'0': 2}], 'obj': 28, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'11': 1, '12': 1}, {'9': 1, '15': 2}, {'7': 1, '16': 1}, {'7': 1, '16': 1}, {'7': 1, '16': 1}, {'7': 1, '13': 1}, {'6': 1, '13': 1}, {'6': 1, '13': 1}, {'6': 1, '13': 1}, {'5': 1, '12': 1, '14': 1}, {'5': 1, '12': 1, '14': 1}, {'4': 1, '8': 1}, {'4': 1, '5': 1, '14': 1}, {'4': 1, '5': 1, '14': 1}, {'3': 1, '10': 1}, {'3': 1, '10': 1}, {'3': 1, '10': 1}, {'3': 1, '10': 1}, {'3': 2, '14': 1}, {'3': 2, '14': 1}, {'2': 1, '4': 1}, {'2': 1, '4': 1}, {'2': 1, '4': 1}, {'1': 1, '9': 1, '14': 1}, {'1': 1, '9': 1, '14': 1}, {'1': 1, '9': 1, '14': 1}, {'0': 2}, {'0': 2}]",28,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 17, 'items': [{'item_id': 1, 'width': 75, 'demand': 4}, {'item_id': 2, 'width': 94, 'demand': 3}, {'item_id': 3, 'width': 56, 'demand': 3}, {'item_id': 4, 'width': 64, 'demand': 7}, {'item_id': 5, 'width': 93, 'demand': 6}, {'item_id': 6, 'width': 34, 'demand': 4}, {'item_id': 7, 'width': 74, 'demand': 3}, {'item_id': 8, 'width': 69, 'demand': 4}, {'item_id': 9, 'width': 57, 'demand': 1}, {'item_id': 10, 'width': 31, 'demand': 4}, {'item_id': 11, 'width': 84, 'demand': 4}, {'item_id': 12, 'width': 50, 'demand': 1}, {'item_id': 13, 'width': 96, 'demand': 3}, {'item_id': 14, 'width': 76, 'demand': 4}, {'item_id': 15, 'width': 20, 'demand': 2}, {'item_id': 16, 'width': 59, 'demand': 2}, {'item_id': 17, 'width': 80, 'demand': 3}]}","[{'12': 1, '13': 1}, {'10': 1, '16': 2}, {'8': 1, '17': 1}, {'8': 1, '17': 1}, {'8': 1, '17': 1}, {'8': 1, '14': 1}, {'7': 1, '14': 1}, {'7': 1, '14': 1}, {'7': 1, '14': 1}, {'6': 1, '13': 1, '15': 1}, {'6': 1, '13': 1, '15': 1}, {'5': 1, '9': 1}, {'5': 1, '6': 1, '15': 1}, {'5': 1, '6': 1, '15': 1}, {'4': 1, '11': 1}, {'4': 1, '11': 1}, {'4': 1, '11': 1}, {'4': 1, '11': 1}, {'4': 2, '15': 1}, {'4': 2, '15': 1}, {'3': 1, '5': 1}, {'3': 1, '5': 1}, {'3': 1, '5': 1}, {'2': 1, '10': 1, '15': 1}, {'2': 1, '10': 1, '15': 1}, {'2': 1, '10': 1, '15': 1}, {'1': 2}, {'1': 2}]",31,json,1
CSP,CSP,"I run into the problem of slicing long dough rolls into the exact mix of loaf sizes a bakery needs for the day. The choice is which loaf sizes to cut from each roll so every customer quantity is made exactly once, without making extras or skipping any orders, and without overstuffing a roll beyond its length. A better plan is the one that uses fewer whole dough rolls β€” just count how many rolls get opened to see which plan wins. The specific loaf sizes, their counts, and the roll length are laid out below.

{
  ""dough_roll_length"": 150.0,
  ""items"": [
    {
      ""loaf_type_id"": ""A"",
      ""loaf_length"": 99,
      ""order_quantity"": 4
    },
    {
      ""loaf_type_id"": ""B"",
      ""loaf_length"": 45,
      ""order_quantity"": 3
    },
    {
      ""loaf_type_id"": ""C"",
      ""loaf_length"": 77,
      ""order_quantity"": 2
    },
    {
      ""loaf_type_id"": ""D"",
      ""loaf_length"": 38,
      ""order_quantity"": 2
    },
    {
      ""loaf_type_id"": ""E"",
      ""loaf_length"": 21,
      ""order_quantity"": 1
    },
    {
      ""loaf_type_id"": ""F"",
      ""loaf_length"": 27,
      ""order_quantity"": 6
    },
    {
      ""loaf_type_id"": ""G"",
      ""loaf_length"": 31,
      ""order_quantity"": 2
    },
    {
      ""loaf_type_id"": ""H"",
      ""loaf_length"": 34,
      ""order_quantity"": 5
    },
    {
      ""loaf_type_id"": ""I"",
      ""loaf_length"": 42,
      ""order_quantity"": 1
    },
    {
      ""loaf_type_id"": ""J"",
      ""loaf_length"": 100,
      ""order_quantity"": 6
    },
    {
      ""loaf_type_id"": ""K"",
      ""loaf_length"": 96,
      ""order_quantity"": 4
    },
    {
      ""loaf_type_id"": ""L"",
      ""loaf_length"": 23,
      ""order_quantity"": 5
    },
    {
      ""loaf_type_id"": ""M"",
      ""loaf_length"": 98,
      ""order_quantity"": 3
    },
    {
      ""loaf_type_id"": ""N"",
      ""loaf_length"": 63,
      ""order_quantity"": 4
    },
    {
      ""loaf_type_id"": ""O"",
      ""loaf_length"": 29,
      ""order_quantity"": 2
    },
    {
      ""loaf_type_id"": ""P"",
      ""loaf_length"": 85,
      ""order_quantity"": 3
    },
    {
      ""loaf_type_id"": ""Q"",
      ""loaf_length"": 49,
      ""order_quantity"": 3
    },
    {
      ""loaf_type_id"": ""R"",
      ""loaf_length"": 47,
      ""order_quantity"": 4
    },
    {
      ""loaf_type_id"": ""S"",
      ""loaf_length"": 69,
      ""order_quantity"": 5
    },
    {
      ""loaf_type_id"": ""T"",
      ""loaf_length"": 94,
      ""order_quantity"": 4
    },
    {
      ""loaf_type_id"": ""U"",
      ""loaf_length"": 24,
      ""order_quantity"": 3
    },
    {
      ""loaf_type_id"": ""V"",
      ""loaf_length"": 95,
      ""order_quantity"": 4
    }
  ]
}

Also, when you send back a plan, keep it in this simple JSON shape so it's easy to read by people and machines alike:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of it like a little form: ""solution"" is a list of rolls you open; each object in the list shows which loaf placeholders go on that roll and how many of each. It's just an outline of the expected shape, not the actual cutting plan β€” I'll fill in the real numbers when I compute the plan.

Please make sure to use the exact identifiers from the instance input β€” do not rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [99, 45, 77, 38, 21, 27, 31, 34, 42, 100, 96, 23, 98, 63, 29, 85, 49, 47, 69, 94, 24, 95], 'demands': [4, 3, 2, 2, 1, 6, 2, 5, 1, 6, 4, 5, 3, 4, 2, 3, 3, 4, 5, 4, 3, 4], 'solution_patterns': [{'18': 2}, {'18': 2}, {'17': 1, '21': 1}, {'17': 1, '21': 1}, {'17': 1, '21': 1}, {'17': 1, '21': 1}, {'13': 1, '15': 1}, {'13': 1, '15': 1}, {'13': 1, '15': 1}, {'12': 1, '16': 1}, {'12': 1, '16': 1}, {'12': 1, '16': 1}, {'11': 1, '13': 2}, {'10': 1, '11': 1, '14': 1}, {'9': 1, '20': 2}, {'8': 1, '9': 1}, {'7': 1, '10': 1}, {'7': 1, '10': 1}, {'6': 1, '19': 1, '20': 1}, {'6': 1, '19': 1, '20': 1}, {'5': 1, '14': 1, '19': 1}, {'5': 1, '9': 1, '11': 1}, {'5': 1, '9': 1, '11': 1}, {'5': 2, '10': 1}, {'4': 1, '7': 1, '19': 1}, {'3': 1, '9': 1}, {'3': 1, '9': 1}, {'2': 1, '18': 1}, {'2': 1, '7': 2}, {'0': 1, '5': 1, '11': 1}, {'0': 1, '1': 1}, {'0': 1, '1': 1}, {'0': 1, '1': 1}], 'obj': 33, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'18': 2}, {'18': 2}, {'17': 1, '21': 1}, {'17': 1, '21': 1}, {'17': 1, '21': 1}, {'17': 1, '21': 1}, {'13': 1, '15': 1}, {'13': 1, '15': 1}, {'13': 1, '15': 1}, {'12': 1, '16': 1}, {'12': 1, '16': 1}, {'12': 1, '16': 1}, {'11': 1, '13': 2}, {'10': 1, '11': 1, '14': 1}, {'9': 1, '20': 2}, {'8': 1, '9': 1}, {'7': 1, '10': 1}, {'7': 1, '10': 1}, {'6': 1, '19': 1, '20': 1}, {'6': 1, '19': 1, '20': 1}, {'5': 1, '14': 1, '19': 1}, {'5': 1, '9': 1, '11': 1}, {'5': 1, '9': 1, '11': 1}, {'5': 2, '10': 1}, {'4': 1, '7': 1, '19': 1}, {'3': 1, '9': 1}, {'3': 1, '9': 1}, {'2': 1, '18': 1}, {'2': 1, '7': 2}, {'0': 1, '5': 1, '11': 1}, {'0': 1, '1': 1}, {'0': 1, '1': 1}, {'0': 1, '1': 1}]",33,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 22, 'items': [{'item_id': 'A', 'width': 99, 'demand': 4}, {'item_id': 'B', 'width': 45, 'demand': 3}, {'item_id': 'C', 'width': 77, 'demand': 2}, {'item_id': 'D', 'width': 38, 'demand': 2}, {'item_id': 'E', 'width': 21, 'demand': 1}, {'item_id': 'F', 'width': 27, 'demand': 6}, {'item_id': 'G', 'width': 31, 'demand': 2}, {'item_id': 'H', 'width': 34, 'demand': 5}, {'item_id': 'I', 'width': 42, 'demand': 1}, {'item_id': 'J', 'width': 100, 'demand': 6}, {'item_id': 'K', 'width': 96, 'demand': 4}, {'item_id': 'L', 'width': 23, 'demand': 5}, {'item_id': 'M', 'width': 98, 'demand': 3}, {'item_id': 'N', 'width': 63, 'demand': 4}, {'item_id': 'O', 'width': 29, 'demand': 2}, {'item_id': 'P', 'width': 85, 'demand': 3}, {'item_id': 'Q', 'width': 49, 'demand': 3}, {'item_id': 'R', 'width': 47, 'demand': 4}, {'item_id': 'S', 'width': 69, 'demand': 5}, {'item_id': 'T', 'width': 94, 'demand': 4}, {'item_id': 'U', 'width': 24, 'demand': 3}, {'item_id': 'V', 'width': 95, 'demand': 4}]}","[{'S': 2}, {'S': 2}, {'R': 1, 'V': 1}, {'R': 1, 'V': 1}, {'R': 1, 'V': 1}, {'R': 1, 'V': 1}, {'N': 1, 'P': 1}, {'N': 1, 'P': 1}, {'N': 1, 'P': 1}, {'M': 1, 'Q': 1}, {'M': 1, 'Q': 1}, {'M': 1, 'Q': 1}, {'L': 1, 'N': 2}, {'K': 1, 'L': 1, 'O': 1}, {'J': 1, 'U': 2}, {'I': 1, 'J': 1}, {'H': 1, 'K': 1}, {'H': 1, 'K': 1}, {'G': 1, 'T': 1, 'U': 1}, {'G': 1, 'T': 1, 'U': 1}, {'F': 1, 'O': 1, 'T': 1}, {'F': 1, 'J': 1, 'L': 1}, {'F': 1, 'J': 1, 'L': 1}, {'F': 2, 'K': 1}, {'E': 1, 'H': 1, 'T': 1}, {'D': 1, 'J': 1}, {'D': 1, 'J': 1}, {'C': 1, 'S': 1}, {'C': 1, 'H': 2}, {'A': 1, 'F': 1, 'L': 1}, {'A': 1, 'B': 1}, {'A': 1, 'B': 1}, {'A': 1, 'B': 1}]",32,json,names
CSP,CSP,"I was chatting with the team at a small glass shop where they have stacks of the same-size panes and a long list of panel sizes customers ordered. The question is how to slice those standard panes into all the needed panels so every order quantity is met, and the clever part is trying to do that while using as few whole panes as possible β€” you judge a plan by simply counting how many full panes get used, the lower the count the better. Every requested panel size and quantity has to be produced exactly, and no single panel can be cut from a pane if it wouldn’t fit inside that pane’s length. The exact panel sizes and quantities will be shown below.

- **pane_length**: 150.0

| panel_type_id | panel_length | quantity_required |
|---|---|---|
| 1 | 81 | 3 |
| 2 | 80 | 2 |
| 3 | 93 | 2 |
| 4 | 28 | 2 |
| 5 | 89 | 5 |
| 6 | 97 | 6 |
| 7 | 88 | 6 |
| 8 | 40 | 2 |
| 9 | 78 | 1 |
| 10 | 52 | 3 |
| 11 | 54 | 4 |
| 12 | 84 | 1 |
| 13 | 49 | 8 |
| 14 | 95 | 2 |
| 15 | 51 | 2 |
| 16 | 37 | 4 |
| 17 | 64 | 4 |
| 18 | 31 | 3 |
| 19 | 44 | 6 |
| 20 | 73 | 4 |
| 21 | 87 | 6 |
| 22 | 77 | 1 |

Oh, and one more thing β€” when you send back a plan, try to follow this simple JSON layout so I can read it automatically. It just describes each full pane as a little list of which panel types (and quantities) come from it.

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

This sketch means: the top-level ""solution"" holds an array of cutting patterns; each object in the array lists item identifiers and how many of that item come from a single standard pane. It's just a friendly template β€” not the final answer itself.

Please be sure to use the exact identifiers from the instance input β€” don't rename them or invent new ones. 
- for example: Valid identifiers look like plain numbers such as ""1"" or ""23"", single capital letters like ""A"" or ""B"", or a capital letter followed by digits like ""A1"" or ""X7"".","{'weights': [81, 80, 93, 28, 89, 97, 88, 40, 78, 52, 54, 84, 49, 95, 51, 37, 64, 31, 44, 73, 87, 77], 'demands': [3, 2, 2, 2, 5, 6, 6, 2, 1, 3, 4, 1, 8, 2, 2, 4, 4, 3, 6, 4, 6, 1], 'solution_patterns': [{'19': 1, '21': 1}, {'19': 2}, {'18': 1, '20': 1}, {'18': 1, '20': 1}, {'12': 1, '20': 1}, {'12': 1, '20': 1}, {'12': 1, '20': 1}, {'12': 1, '20': 1}, {'11': 1, '16': 1}, {'10': 1, '13': 1}, {'10': 1, '13': 1}, {'8': 1, '15': 1, '17': 1}, {'6': 1, '17': 2}, {'6': 1, '15': 1}, {'6': 1, '12': 1}, {'6': 1, '12': 1}, {'6': 1, '12': 1}, {'6': 1, '12': 1}, {'5': 1, '18': 1}, {'5': 1, '18': 1}, {'5': 1, '18': 1}, {'5': 1, '18': 1}, {'5': 1, '14': 1}, {'5': 1, '14': 1}, {'4': 1, '15': 1}, {'4': 1, '15': 1}, {'4': 1, '9': 1}, {'4': 1, '9': 1}, {'4': 1, '9': 1}, {'3': 1, '12': 1, '19': 1}, {'2': 1, '10': 1}, {'2': 1, '10': 1}, {'1': 1, '3': 1, '7': 1}, {'1': 1, '3': 1, '7': 1}, {'0': 1, '16': 1}, {'0': 1, '16': 1}, {'0': 1, '16': 1}], 'obj': 37, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'19': 1, '21': 1}, {'19': 2}, {'18': 1, '20': 1}, {'18': 1, '20': 1}, {'12': 1, '20': 1}, {'12': 1, '20': 1}, {'12': 1, '20': 1}, {'12': 1, '20': 1}, {'11': 1, '16': 1}, {'10': 1, '13': 1}, {'10': 1, '13': 1}, {'8': 1, '15': 1, '17': 1}, {'6': 1, '17': 2}, {'6': 1, '15': 1}, {'6': 1, '12': 1}, {'6': 1, '12': 1}, {'6': 1, '12': 1}, {'6': 1, '12': 1}, {'5': 1, '18': 1}, {'5': 1, '18': 1}, {'5': 1, '18': 1}, {'5': 1, '18': 1}, {'5': 1, '14': 1}, {'5': 1, '14': 1}, {'4': 1, '15': 1}, {'4': 1, '15': 1}, {'4': 1, '9': 1}, {'4': 1, '9': 1}, {'4': 1, '9': 1}, {'3': 1, '12': 1, '19': 1}, {'2': 1, '10': 1}, {'2': 1, '10': 1}, {'1': 1, '3': 1, '7': 1}, {'1': 1, '3': 1, '7': 1}, {'0': 1, '16': 1}, {'0': 1, '16': 1}, {'0': 1, '16': 1}]",37,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 22, 'items': [{'item_id': 1, 'width': 81, 'demand': 3}, {'item_id': 2, 'width': 80, 'demand': 2}, {'item_id': 3, 'width': 93, 'demand': 2}, {'item_id': 4, 'width': 28, 'demand': 2}, {'item_id': 5, 'width': 89, 'demand': 5}, {'item_id': 6, 'width': 97, 'demand': 6}, {'item_id': 7, 'width': 88, 'demand': 6}, {'item_id': 8, 'width': 40, 'demand': 2}, {'item_id': 9, 'width': 78, 'demand': 1}, {'item_id': 10, 'width': 52, 'demand': 3}, {'item_id': 11, 'width': 54, 'demand': 4}, {'item_id': 12, 'width': 84, 'demand': 1}, {'item_id': 13, 'width': 49, 'demand': 8}, {'item_id': 14, 'width': 95, 'demand': 2}, {'item_id': 15, 'width': 51, 'demand': 2}, {'item_id': 16, 'width': 37, 'demand': 4}, {'item_id': 17, 'width': 64, 'demand': 4}, {'item_id': 18, 'width': 31, 'demand': 3}, {'item_id': 19, 'width': 44, 'demand': 6}, {'item_id': 20, 'width': 73, 'demand': 4}, {'item_id': 21, 'width': 87, 'demand': 6}, {'item_id': 22, 'width': 77, 'demand': 1}]}","[{'20': 1, '22': 1}, {'20': 2}, {'19': 1, '21': 1}, {'19': 1, '21': 1}, {'13': 1, '21': 1}, {'13': 1, '21': 1}, {'13': 1, '21': 1}, {'13': 1, '21': 1}, {'12': 1, '17': 1}, {'11': 1, '14': 1}, {'11': 1, '14': 1}, {'9': 1, '16': 1, '18': 1}, {'7': 1, '18': 2}, {'7': 1, '16': 1}, {'7': 1, '13': 1}, {'7': 1, '13': 1}, {'7': 1, '13': 1}, {'7': 1, '13': 1}, {'6': 1, '19': 1}, {'6': 1, '19': 1}, {'6': 1, '19': 1}, {'6': 1, '19': 1}, {'6': 1, '15': 1}, {'6': 1, '15': 1}, {'5': 1, '16': 1}, {'5': 1, '16': 1}, {'5': 1, '10': 1}, {'5': 1, '10': 1}, {'5': 1, '10': 1}, {'4': 1, '13': 1, '20': 1}, {'3': 1, '11': 1}, {'3': 1, '11': 1}, {'2': 1, '4': 1, '8': 1}, {'2': 1, '4': 1, '8': 1}, {'1': 1, '17': 1}, {'1': 1, '17': 1}, {'1': 1, '17': 1}]",33,markdown_table,1
CSP,CSP,"There's this straightforward scene: a workbench, a stack of identical-length tubes, and an order ticket listing how many cushion strips of each size are needed. The trick is to plan the cuts so the order is fulfilled and the total length taken from any single tube never goes past what that tube holds. A smarter plan is the one that gets the whole order done using fewer tubes β€” count the tubes used to judge that. Nothing on the order can be left out or duplicated beyond what’s asked, and the concrete details follow below.

{
  ""tube_length"": 150.0,
  ""items"": [
    {
      ""strip_type_id"": 0,
      ""strip_length"": 29,
      ""required_count"": 3
    },
    {
      ""strip_type_id"": 1,
      ""strip_length"": 46,
      ""required_count"": 1
    },
    {
      ""strip_type_id"": 2,
      ""strip_length"": 34,
      ""required_count"": 2
    },
    {
      ""strip_type_id"": 3,
      ""strip_length"": 58,
      ""required_count"": 4
    },
    {
      ""strip_type_id"": 4,
      ""strip_length"": 81,
      ""required_count"": 2
    },
    {
      ""strip_type_id"": 5,
      ""strip_length"": 35,
      ""required_count"": 1
    },
    {
      ""strip_type_id"": 6,
      ""strip_length"": 43,
      ""required_count"": 1
    },
    {
      ""strip_type_id"": 7,
      ""strip_length"": 32,
      ""required_count"": 1
    },
    {
      ""strip_type_id"": 8,
      ""strip_length"": 27,
      ""required_count"": 1
    },
    {
      ""strip_type_id"": 9,
      ""strip_length"": 87,
      ""required_count"": 1
    },
    {
      ""strip_type_id"": 10,
      ""strip_length"": 62,
      ""required_count"": 1
    },
    {
      ""strip_type_id"": 11,
      ""strip_length"": 26,
      ""required_count"": 2
    },
    {
      ""strip_type_id"": 12,
      ""strip_length"": 23,
      ""required_count"": 2
    },
    {
      ""strip_type_id"": 13,
      ""strip_length"": 21,
      ""required_count"": 1
    },
    {
      ""strip_type_id"": 14,
      ""strip_length"": 74,
      ""required_count"": 1
    },
    {
      ""strip_type_id"": 15,
      ""strip_length"": 54,
      ""required_count"": 2
    },
    {
      ""strip_type_id"": 16,
      ""strip_length"": 84,
      ""required_count"": 1
    },
    {
      ""strip_type_id"": 17,
      ""strip_length"": 25,
      ""required_count"": 1
    },
    {
      ""strip_type_id"": 18,
      ""strip_length"": 88,
      ""required_count"": 2
    },
    {
      ""strip_type_id"": 19,
      ""strip_length"": 80,
      ""required_count"": 1
    },
    {
      ""strip_type_id"": 20,
      ""strip_length"": 73,
      ""required_count"": 1
    }
  ]
}

Oh, and one more thing β€” when you send the plan back, keep it in this little JSON layout so it's easy to parse. Something like this:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Here ""solution"" is just a list (each element is one tube's worth of cuts). Each object inside says how many pieces of each item to take from that tube β€” think of each {""<item_id>"": 2} entry as ""cut two of that item from this tube."" This block is only a sketch of the shape I expect, not the actual cutting plan.

Please make sure to use the exact identifiers from the instance input β€” do not rename them or invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'weights': [29, 46, 34, 58, 81, 35, 43, 32, 27, 87, 62, 26, 23, 21, 74, 54, 84, 25, 88, 80, 73], 'demands': [3, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1], 'solution_patterns': [{'13': 1, '14': 1, '15': 1}, {'11': 2, '17': 1, '20': 1}, {'10': 1, '16': 1}, {'6': 1, '8': 1, '19': 1}, {'4': 1, '15': 1}, {'3': 1, '18': 1}, {'3': 1, '18': 1}, {'2': 1, '3': 2}, {'1': 1, '4': 1, '12': 1}, {'0': 1, '2': 1, '9': 1}, {'0': 2, '5': 1, '7': 1, '12': 1}], 'obj': 11, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'13': 1, '14': 1, '15': 1}, {'11': 2, '17': 1, '20': 1}, {'10': 1, '16': 1}, {'6': 1, '8': 1, '19': 1}, {'4': 1, '15': 1}, {'3': 1, '18': 1}, {'3': 1, '18': 1}, {'2': 1, '3': 2}, {'1': 1, '4': 1, '12': 1}, {'0': 1, '2': 1, '9': 1}, {'0': 2, '5': 1, '7': 1, '12': 1}]",11,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 21, 'items': [{'item_id': 0, 'width': 29, 'demand': 3}, {'item_id': 1, 'width': 46, 'demand': 1}, {'item_id': 2, 'width': 34, 'demand': 2}, {'item_id': 3, 'width': 58, 'demand': 4}, {'item_id': 4, 'width': 81, 'demand': 2}, {'item_id': 5, 'width': 35, 'demand': 1}, {'item_id': 6, 'width': 43, 'demand': 1}, {'item_id': 7, 'width': 32, 'demand': 1}, {'item_id': 8, 'width': 27, 'demand': 1}, {'item_id': 9, 'width': 87, 'demand': 1}, {'item_id': 10, 'width': 62, 'demand': 1}, {'item_id': 11, 'width': 26, 'demand': 2}, {'item_id': 12, 'width': 23, 'demand': 2}, {'item_id': 13, 'width': 21, 'demand': 1}, {'item_id': 14, 'width': 74, 'demand': 1}, {'item_id': 15, 'width': 54, 'demand': 2}, {'item_id': 16, 'width': 84, 'demand': 1}, {'item_id': 17, 'width': 25, 'demand': 1}, {'item_id': 18, 'width': 88, 'demand': 2}, {'item_id': 19, 'width': 80, 'demand': 1}, {'item_id': 20, 'width': 73, 'demand': 1}]}","[{'13': 1, '14': 1, '15': 1}, {'11': 2, '17': 1, '20': 1}, {'10': 1, '16': 1}, {'6': 1, '8': 1, '19': 1}, {'4': 1, '15': 1}, {'3': 1, '18': 1}, {'3': 1, '18': 1}, {'2': 1, '3': 2}, {'1': 1, '4': 1, '12': 1}, {'0': 1, '2': 1, '9': 1}, {'0': 2, '5': 1, '7': 1, '12': 1}]",34,json,0
CSP,CSP,"Back at the warehouse the foreman draws up cutting lists so long rolls get turned into the exact number of face strips needed for shipments; the cuts from each roll must not add up past the roll’s fixed length and every requested piece must be produced without extras or shortages. The plan that’s preferred is the one that gets it done using the least number of rolls β€” just count the rolls to see which plan wins. The specific sizes and demands are listed below.

Each roll has 150.0 usable length; cuts from any roll must not exceed that capacity.
Cut 1 strips of 1, each 80 long.
Cut 4 strips of 2, each 66 long.
Cut 1 strips of 3, each 65 long.
Cut 2 strips of 4, each 36 long.
Cut 1 strips of 5, each 43 long.
Cut 2 strips of 6, each 58 long.
Cut 2 strips of 7, each 46 long.
Cut 1 strips of 8, each 48 long.
Cut 2 strips of 9, each 51 long.
Cut 1 strips of 10, each 68 long.
Cut 2 strips of 11, each 22 long.
Cut 2 strips of 12, each 23 long.
Cut 3 strips of 13, each 91 long.
Cut 1 strips of 14, each 95 long.
Cut 3 strips of 15, each 45 long.
Cut 3 strips of 16, each 82 long.
Cut 1 strips of 17, each 90 long.
Cut 1 strips of 18, each 29 long.
Cut 2 strips of 19, each 77 long.
Cut 1 strips of 20, each 35 long.
Cut 1 strips of 21, each 24 long.
Cut 2 strips of 22, each 62 long.
Cut 4 strips of 23, each 69 long.
Rolls are counted against the 150.0 limit to choose the plan that uses the fewest rolls.

Oh, and when you send back the cutting plan, just stick to this simple JSON layout so it's easy to read by the team. Here's a quick sketch of the shape I expect:

{
  ""solution"": [
    {""<patch_type_id>"": 2, ""<patch_type_id>"": 1},
    ...
  ]
}

The idea is super straightforward: ""solution"" is a list of rolls, and each object in that list shows which patch/strip placeholders and counts come from that roll. Think of each object like a little cut list for one roll. This is just a sketch of the expected shape, not the actual answer.

Please make sure you use the exact identifiers from the instance input β€” do not rename them or invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'weights': [80, 66, 65, 36, 43, 58, 46, 48, 51, 68, 22, 23, 91, 95, 45, 82, 90, 29, 77, 35, 24, 62, 69], 'demands': [1, 4, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 3, 1, 3, 3, 1, 1, 2, 1, 1, 2, 4], 'solution_patterns': [{'18': 1, '22': 1}, {'18': 1, '22': 1}, {'11': 1, '16': 1, '17': 1}, {'9': 1, '22': 1}, {'8': 2, '14': 1}, {'7': 1, '13': 1}, {'6': 1, '14': 1, '19': 1, '20': 1}, {'5': 1, '12': 1}, {'5': 1, '12': 1}, {'4': 1, '14': 1, '21': 1}, {'3': 1, '11': 1, '12': 1}, {'2': 1, '3': 1, '6': 1}, {'1': 1, '15': 1}, {'1': 1, '15': 1}, {'1': 1, '15': 1}, {'1': 1, '10': 1, '21': 1}, {'1': 1, '3': 1, '10': 2}, {'0': 1, '22': 1}], 'obj': 18, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'18': 1, '22': 1}, {'18': 1, '22': 1}, {'11': 1, '16': 1, '17': 1}, {'9': 1, '22': 1}, {'8': 2, '14': 1}, {'7': 1, '13': 1}, {'6': 1, '14': 1, '19': 1, '20': 1}, {'5': 1, '12': 1}, {'5': 1, '12': 1}, {'4': 1, '14': 1, '21': 1}, {'3': 1, '11': 1, '12': 1}, {'2': 1, '3': 1, '6': 1}, {'1': 1, '15': 1}, {'1': 1, '15': 1}, {'1': 1, '15': 1}, {'1': 1, '10': 1, '21': 1}, {'1': 1, '3': 1, '10': 2}, {'0': 1, '22': 1}]",18,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 23, 'items': [{'item_id': 1, 'width': 80, 'demand': 1}, {'item_id': 2, 'width': 66, 'demand': 4}, {'item_id': 3, 'width': 65, 'demand': 1}, {'item_id': 4, 'width': 36, 'demand': 2}, {'item_id': 5, 'width': 43, 'demand': 1}, {'item_id': 6, 'width': 58, 'demand': 2}, {'item_id': 7, 'width': 46, 'demand': 2}, {'item_id': 8, 'width': 48, 'demand': 1}, {'item_id': 9, 'width': 51, 'demand': 2}, {'item_id': 10, 'width': 68, 'demand': 1}, {'item_id': 11, 'width': 22, 'demand': 2}, {'item_id': 12, 'width': 23, 'demand': 2}, {'item_id': 13, 'width': 91, 'demand': 3}, {'item_id': 14, 'width': 95, 'demand': 1}, {'item_id': 15, 'width': 45, 'demand': 3}, {'item_id': 16, 'width': 82, 'demand': 3}, {'item_id': 17, 'width': 90, 'demand': 1}, {'item_id': 18, 'width': 29, 'demand': 1}, {'item_id': 19, 'width': 77, 'demand': 2}, {'item_id': 20, 'width': 35, 'demand': 1}, {'item_id': 21, 'width': 24, 'demand': 1}, {'item_id': 22, 'width': 62, 'demand': 2}, {'item_id': 23, 'width': 69, 'demand': 4}]}","[{'19': 1, '23': 1}, {'19': 1, '23': 1}, {'12': 1, '17': 1, '18': 1}, {'10': 1, '23': 1}, {'9': 2, '15': 1}, {'8': 1, '14': 1}, {'7': 1, '15': 1, '20': 1, '21': 1}, {'6': 1, '13': 1}, {'6': 1, '13': 1}, {'5': 1, '15': 1, '22': 1}, {'4': 1, '12': 1, '13': 1}, {'3': 1, '4': 1, '7': 1}, {'2': 1, '16': 1}, {'2': 1, '16': 1}, {'2': 1, '16': 1}, {'2': 1, '11': 1, '22': 1}, {'2': 1, '4': 1, '11': 2}, {'1': 1, '23': 1}]",35,nl,1
CSP,CSP,"Many people in small ateliers face the same problem: a pile of long hides and a packing list of different patch lengths needed to assemble shoes. The trick is deciding how to arrange those patches along the hides so every item on the list gets made while opening the smallest possible number of hides. One arrangement is preferable when it uses fewer whole hides β€” you simply count the hides required to compare plans β€” and it has to respect the simple limit that the lengths taken from any single hide don’t go past that hide’s fixed length. The exact requirements are below.

{
  ""hide_length"": 150.0,
  ""items"": [
    {
      ""patch_type_id"": 0,
      ""patch_length"": 23,
      ""required_quantity"": 1
    },
    {
      ""patch_type_id"": 1,
      ""patch_length"": 58,
      ""required_quantity"": 1
    },
    {
      ""patch_type_id"": 2,
      ""patch_length"": 57,
      ""required_quantity"": 1
    },
    {
      ""patch_type_id"": 3,
      ""patch_length"": 75,
      ""required_quantity"": 1
    },
    {
      ""patch_type_id"": 4,
      ""patch_length"": 28,
      ""required_quantity"": 1
    },
    {
      ""patch_type_id"": 5,
      ""patch_length"": 44,
      ""required_quantity"": 3
    },
    {
      ""patch_type_id"": 6,
      ""patch_length"": 24,
      ""required_quantity"": 1
    },
    {
      ""patch_type_id"": 7,
      ""patch_length"": 42,
      ""required_quantity"": 1
    },
    {
      ""patch_type_id"": 8,
      ""patch_length"": 43,
      ""required_quantity"": 4
    },
    {
      ""patch_type_id"": 9,
      ""patch_length"": 33,
      ""required_quantity"": 1
    },
    {
      ""patch_type_id"": 10,
      ""patch_length"": 35,
      ""required_quantity"": 1
    },
    {
      ""patch_type_id"": 11,
      ""patch_length"": 54,
      ""required_quantity"": 2
    },
    {
      ""patch_type_id"": 12,
      ""patch_length"": 65,
      ""required_quantity"": 1
    },
    {
      ""patch_type_id"": 13,
      ""patch_length"": 88,
      ""required_quantity"": 4
    },
    {
      ""patch_type_id"": 14,
      ""patch_length"": 25,
      ""required_quantity"": 1
    },
    {
      ""patch_type_id"": 15,
      ""patch_length"": 46,
      ""required_quantity"": 1
    },
    {
      ""patch_type_id"": 16,
      ""patch_length"": 91,
      ""required_quantity"": 1
    },
    {
      ""patch_type_id"": 17,
      ""patch_length"": 55,
      ""required_quantity"": 4
    },
    {
      ""patch_type_id"": 18,
      ""patch_length"": 59,
      ""required_quantity"": 3
    },
    {
      ""patch_type_id"": 19,
      ""patch_length"": 71,
      ""required_quantity"": 1
    },
    {
      ""patch_type_id"": 20,
      ""patch_length"": 27,
      ""required_quantity"": 6
    },
    {
      ""patch_type_id"": 21,
      ""patch_length"": 48,
      ""required_quantity"": 5
    }
  ]
}

If you want to sketch a cutting plan, just follow this simple JSON shape when you reply β€” it keeps things tidy and easy to read:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of ""solution"" as a list where each entry is one opened hide and the little mappings inside show which patch types come off that hide and in what counts. The angle-bracketed bits are placeholders for patch-type labels and the numbers are how many pieces of that type you take from that hide. This is just a sketch of the expected shape, not the actual answer.

Please use the exact identifiers from the instance input β€” no renaming and no new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [23, 58, 57, 75, 28, 44, 24, 42, 43, 33, 35, 54, 65, 88, 25, 46, 91, 55, 59, 71, 27, 48], 'demands': [1, 1, 1, 1, 1, 3, 1, 1, 4, 1, 1, 2, 1, 4, 1, 1, 1, 4, 3, 1, 6, 5], 'solution_patterns': [{'16': 1, '18': 1}, {'10': 1, '13': 1, '20': 1}, {'8': 1, '18': 1, '21': 1}, {'8': 1, '18': 1, '21': 1}, {'8': 1, '14': 1, '17': 1, '20': 1}, {'7': 1, '8': 1, '12': 1}, {'6': 1, '17': 1, '19': 1}, {'5': 1, '17': 1, '21': 1}, {'5': 1, '17': 1, '21': 1}, {'5': 1, '11': 1, '21': 1}, {'5': 1, '8': 1, '20': 2}, {'4': 1, '9': 1, '13': 1}, {'3': 1, '20': 1, '21': 1}, {'2': 1, '13': 1}, {'1': 1, '13': 1}, {'0': 1, '11': 1, '15': 1, '20': 1}], 'obj': 16, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'16': 1, '18': 1}, {'10': 1, '13': 1, '20': 1}, {'8': 1, '18': 1, '21': 1}, {'8': 1, '18': 1, '21': 1}, {'8': 1, '14': 1, '17': 1, '20': 1}, {'7': 1, '8': 1, '12': 1}, {'6': 1, '17': 1, '19': 1}, {'5': 1, '17': 1, '21': 1}, {'5': 1, '17': 1, '21': 1}, {'5': 1, '11': 1, '21': 1}, {'5': 1, '8': 1, '20': 2}, {'4': 1, '9': 1, '13': 1}, {'3': 1, '20': 1, '21': 1}, {'2': 1, '13': 1}, {'1': 1, '13': 1}, {'0': 1, '11': 1, '15': 1, '20': 1}]",16,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 22, 'items': [{'item_id': 0, 'width': 23, 'demand': 1}, {'item_id': 1, 'width': 58, 'demand': 1}, {'item_id': 2, 'width': 57, 'demand': 1}, {'item_id': 3, 'width': 75, 'demand': 1}, {'item_id': 4, 'width': 28, 'demand': 1}, {'item_id': 5, 'width': 44, 'demand': 3}, {'item_id': 6, 'width': 24, 'demand': 1}, {'item_id': 7, 'width': 42, 'demand': 1}, {'item_id': 8, 'width': 43, 'demand': 4}, {'item_id': 9, 'width': 33, 'demand': 1}, {'item_id': 10, 'width': 35, 'demand': 1}, {'item_id': 11, 'width': 54, 'demand': 2}, {'item_id': 12, 'width': 65, 'demand': 1}, {'item_id': 13, 'width': 88, 'demand': 4}, {'item_id': 14, 'width': 25, 'demand': 1}, {'item_id': 15, 'width': 46, 'demand': 1}, {'item_id': 16, 'width': 91, 'demand': 1}, {'item_id': 17, 'width': 55, 'demand': 4}, {'item_id': 18, 'width': 59, 'demand': 3}, {'item_id': 19, 'width': 71, 'demand': 1}, {'item_id': 20, 'width': 27, 'demand': 6}, {'item_id': 21, 'width': 48, 'demand': 5}]}","[{'16': 1, '18': 1}, {'10': 1, '13': 1, '20': 1}, {'8': 1, '18': 1, '21': 1}, {'8': 1, '18': 1, '21': 1}, {'8': 1, '14': 1, '17': 1, '20': 1}, {'7': 1, '8': 1, '12': 1}, {'6': 1, '17': 1, '19': 1}, {'5': 1, '17': 1, '21': 1}, {'5': 1, '17': 1, '21': 1}, {'5': 1, '11': 1, '21': 1}, {'5': 1, '8': 1, '20': 2}, {'4': 1, '9': 1, '13': 1}, {'3': 1, '20': 1, '21': 1}, {'2': 1, '13': 1}, {'1': 1, '13': 1}, {'0': 1, '11': 1, '15': 1, '20': 1}]",36,json,0
CSP,CSP,"Many people don’t realize that making curtains is a bit of a packing puzzle: long rolls must be cut into panels of several widths to satisfy lots of orders. The choice is how to assign those panels to each roll so every quantity is produced correctly and the sum of widths from any roll stays within the roll’s fixed length. A smarter assignment is the one that finishes all orders while using the fewest rolls possible β€” tally the number of rolls as the score β€” and the exact panel widths, quantities, and roll size are below.

{
  ""roll_length"": 150.0,
  ""items"": [
    {
      ""panel_type_id"": 1,
      ""panel_width"": 72,
      ""panels_required"": 4
    },
    {
      ""panel_type_id"": 2,
      ""panel_width"": 34,
      ""panels_required"": 1
    },
    {
      ""panel_type_id"": 3,
      ""panel_width"": 91,
      ""panels_required"": 1
    },
    {
      ""panel_type_id"": 4,
      ""panel_width"": 50,
      ""panels_required"": 2
    },
    {
      ""panel_type_id"": 5,
      ""panel_width"": 58,
      ""panels_required"": 1
    },
    {
      ""panel_type_id"": 6,
      ""panel_width"": 49,
      ""panels_required"": 2
    },
    {
      ""panel_type_id"": 7,
      ""panel_width"": 63,
      ""panels_required"": 1
    },
    {
      ""panel_type_id"": 8,
      ""panel_width"": 100,
      ""panels_required"": 3
    },
    {
      ""panel_type_id"": 9,
      ""panel_width"": 76,
      ""panels_required"": 1
    },
    {
      ""panel_type_id"": 10,
      ""panel_width"": 78,
      ""panels_required"": 1
    },
    {
      ""panel_type_id"": 11,
      ""panel_width"": 89,
      ""panels_required"": 2
    },
    {
      ""panel_type_id"": 12,
      ""panel_width"": 80,
      ""panels_required"": 1
    },
    {
      ""panel_type_id"": 13,
      ""panel_width"": 85,
      ""panels_required"": 2
    },
    {
      ""panel_type_id"": 14,
      ""panel_width"": 51,
      ""panels_required"": 2
    },
    {
      ""panel_type_id"": 15,
      ""panel_width"": 38,
      ""panels_required"": 1
    },
    {
      ""panel_type_id"": 16,
      ""panel_width"": 53,
      ""panels_required"": 3
    },
    {
      ""panel_type_id"": 17,
      ""panel_width"": 25,
      ""panels_required"": 1
    }
  ]
}

When you send back a candidate cutting plan, just drop it in a tiny JSON sketch so it's easy to read and validate. Something casual like this works fine:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of that as: the ""solution"" list contains one entry per roll (one cut pattern per roll). Each object inside lists which panel types and how many of each are cut from that roll. Super informal β€” just a way to show which items go on which roll. This is only a sketch of the shape I expect, not the final answer.

Please make sure to use the exact identifiers from the instance input β€” don't rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [72, 34, 91, 50, 58, 49, 63, 100, 76, 78, 89, 80, 85, 51, 38, 53, 25], 'demands': [4, 1, 1, 2, 1, 2, 1, 3, 1, 1, 2, 1, 2, 2, 1, 3, 1], 'solution_patterns': [{'13': 1, '14': 1, '15': 1}, {'12': 1, '13': 1}, {'10': 1, '15': 1}, {'10': 1, '15': 1}, {'6': 1, '12': 1}, {'5': 1, '7': 1}, {'4': 1, '11': 1}, {'3': 1, '7': 1}, {'3': 1, '7': 1}, {'3': 1, '5': 1, '13': 1}, {'1': 1, '2': 1, '16': 1}, {'0': 1, '9': 1}, {'0': 1, '8': 1}, {'0': 2}], 'obj': 14, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'13': 1, '14': 1, '15': 1}, {'12': 1, '13': 1}, {'10': 1, '15': 1}, {'10': 1, '15': 1}, {'6': 1, '12': 1}, {'5': 1, '7': 1}, {'4': 1, '11': 1}, {'3': 1, '7': 1}, {'3': 1, '7': 1}, {'3': 1, '5': 1, '13': 1}, {'1': 1, '2': 1, '16': 1}, {'0': 1, '9': 1}, {'0': 1, '8': 1}, {'0': 2}]",14,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 17, 'items': [{'item_id': 1, 'width': 72, 'demand': 4}, {'item_id': 2, 'width': 34, 'demand': 1}, {'item_id': 3, 'width': 91, 'demand': 1}, {'item_id': 4, 'width': 50, 'demand': 2}, {'item_id': 5, 'width': 58, 'demand': 1}, {'item_id': 6, 'width': 49, 'demand': 2}, {'item_id': 7, 'width': 63, 'demand': 1}, {'item_id': 8, 'width': 100, 'demand': 3}, {'item_id': 9, 'width': 76, 'demand': 1}, {'item_id': 10, 'width': 78, 'demand': 1}, {'item_id': 11, 'width': 89, 'demand': 2}, {'item_id': 12, 'width': 80, 'demand': 1}, {'item_id': 13, 'width': 85, 'demand': 2}, {'item_id': 14, 'width': 51, 'demand': 2}, {'item_id': 15, 'width': 38, 'demand': 1}, {'item_id': 16, 'width': 53, 'demand': 3}, {'item_id': 17, 'width': 25, 'demand': 1}]}","[{'14': 1, '15': 1, '16': 1}, {'13': 1, '14': 1}, {'11': 1, '16': 1}, {'11': 1, '16': 1}, {'7': 1, '13': 1}, {'6': 1, '8': 1}, {'5': 1, '12': 1}, {'4': 1, '8': 1}, {'4': 1, '8': 1}, {'4': 1, '6': 1, '14': 1}, {'2': 1, '3': 1, '17': 1}, {'1': 1, '10': 1}, {'1': 1, '9': 1}, {'1': 2}]",37,json,1
CSP,CSP,"Someone at the packing table is stacking orders for labels of several lengths and needs to decide how to slice the big label strips to fill them all. The trick is arranging the cuts so all requested pieces are produced while burning through as few of the original strips as possible β€” just count how many strips get used to see which arrangement wins. It’s essential that every requested label length is produced in the requested quantity, and the sum of pieces from a single strip must stay within that strip’s length. The actual orders and strip length are listed below.

- **label_strip_length**: 150.0

| label_type_id | label_length | labels_required |
|---|---|---|
| 1 | 71 | 2 |
| 2 | 74 | 1 |
| 3 | 40 | 4 |
| 4 | 44 | 4 |
| 5 | 78 | 4 |
| 6 | 51 | 4 |
| 7 | 54 | 4 |
| 8 | 97 | 5 |
| 9 | 67 | 3 |
| 10 | 29 | 5 |
| 11 | 38 | 2 |
| 12 | 93 | 1 |
| 13 | 33 | 4 |
| 14 | 47 | 1 |
| 15 | 96 | 4 |
| 16 | 98 | 1 |

Oh, and one more thing β€” when you send back a proposed cutting layout, please follow this simple JSON shape so I can read it easily. Here’s the sketch of the structure I expect:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of the ""solution"" array as a list of original strips. Each object inside that list shows which requested pieces (the placeholder <item_id>) are taken from that strip and how many of each. It's just a quick form to say ""strip 1 had these pieces, strip 2 had those pieces,"" nothing fancy β€” and not the final answer, just the shape I want the answer in.

Please remember: use the exact identifiers that appear in the problem instance β€” don't rename them and don't invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [71, 74, 40, 44, 78, 51, 54, 97, 67, 29, 38, 93, 33, 47, 96, 98], 'demands': [2, 1, 4, 4, 4, 4, 4, 5, 3, 5, 2, 1, 4, 1, 4, 1], 'solution_patterns': [{'13': 1, '15': 1}, {'9': 4, '12': 1}, {'6': 1, '14': 1}, {'6': 1, '14': 1}, {'6': 1, '14': 1}, {'6': 1, '11': 1}, {'5': 1, '14': 1}, {'5': 1, '7': 1}, {'5': 1, '7': 1}, {'5': 1, '7': 1}, {'4': 1, '12': 2}, {'4': 1, '8': 1}, {'3': 1, '7': 1}, {'3': 1, '7': 1}, {'3': 2, '9': 1, '12': 1}, {'2': 2, '8': 1}, {'2': 2, '8': 1}, {'1': 1, '10': 2}, {'0': 1, '4': 1}, {'0': 1, '4': 1}], 'obj': 20, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'13': 1, '15': 1}, {'9': 4, '12': 1}, {'6': 1, '14': 1}, {'6': 1, '14': 1}, {'6': 1, '14': 1}, {'6': 1, '11': 1}, {'5': 1, '14': 1}, {'5': 1, '7': 1}, {'5': 1, '7': 1}, {'5': 1, '7': 1}, {'4': 1, '12': 2}, {'4': 1, '8': 1}, {'3': 1, '7': 1}, {'3': 1, '7': 1}, {'3': 2, '9': 1, '12': 1}, {'2': 2, '8': 1}, {'2': 2, '8': 1}, {'1': 1, '10': 2}, {'0': 1, '4': 1}, {'0': 1, '4': 1}]",20,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 16, 'items': [{'item_id': 1, 'width': 71, 'demand': 2}, {'item_id': 2, 'width': 74, 'demand': 1}, {'item_id': 3, 'width': 40, 'demand': 4}, {'item_id': 4, 'width': 44, 'demand': 4}, {'item_id': 5, 'width': 78, 'demand': 4}, {'item_id': 6, 'width': 51, 'demand': 4}, {'item_id': 7, 'width': 54, 'demand': 4}, {'item_id': 8, 'width': 97, 'demand': 5}, {'item_id': 9, 'width': 67, 'demand': 3}, {'item_id': 10, 'width': 29, 'demand': 5}, {'item_id': 11, 'width': 38, 'demand': 2}, {'item_id': 12, 'width': 93, 'demand': 1}, {'item_id': 13, 'width': 33, 'demand': 4}, {'item_id': 14, 'width': 47, 'demand': 1}, {'item_id': 15, 'width': 96, 'demand': 4}, {'item_id': 16, 'width': 98, 'demand': 1}]}","[{'14': 1, '16': 1}, {'10': 4, '13': 1}, {'7': 1, '15': 1}, {'7': 1, '15': 1}, {'7': 1, '15': 1}, {'7': 1, '12': 1}, {'6': 1, '15': 1}, {'6': 1, '8': 1}, {'6': 1, '8': 1}, {'6': 1, '8': 1}, {'5': 1, '13': 2}, {'5': 1, '9': 1}, {'4': 1, '8': 1}, {'4': 1, '8': 1}, {'4': 2, '10': 1, '13': 1}, {'3': 2, '9': 1}, {'3': 2, '9': 1}, {'2': 1, '11': 2}, {'1': 1, '5': 1}, {'1': 1, '5': 1}]",38,markdown_table,1
CSP,CSP,"Someone at the shop is trying to be smart about cutting: take standard-length channels and chop them into the right flange pieces for multiple assemblies. The choice is which sets of flange lengths to cut from each channel so all required pieces are produced in the required quantities, and the sum of lengths cut from each channel doesn’t exceed that channel’s length. A better choice uses fewer channels overall β€” the score is just the number of channels consumed. The concrete instance details are below.

{
  ""channel_length"": 150.0,
  ""items"": [
    {
      ""flange_id"": 1,
      ""flange_length"": 51,
      ""quantity_required"": 4
    },
    {
      ""flange_id"": 2,
      ""flange_length"": 66,
      ""quantity_required"": 4
    },
    {
      ""flange_id"": 3,
      ""flange_length"": 30,
      ""quantity_required"": 2
    },
    {
      ""flange_id"": 4,
      ""flange_length"": 49,
      ""quantity_required"": 3
    },
    {
      ""flange_id"": 5,
      ""flange_length"": 45,
      ""quantity_required"": 5
    },
    {
      ""flange_id"": 6,
      ""flange_length"": 32,
      ""quantity_required"": 5
    },
    {
      ""flange_id"": 7,
      ""flange_length"": 69,
      ""quantity_required"": 2
    },
    {
      ""flange_id"": 8,
      ""flange_length"": 86,
      ""quantity_required"": 2
    },
    {
      ""flange_id"": 9,
      ""flange_length"": 44,
      ""quantity_required"": 4
    },
    {
      ""flange_id"": 10,
      ""flange_length"": 64,
      ""quantity_required"": 2
    },
    {
      ""flange_id"": 11,
      ""flange_length"": 74,
      ""quantity_required"": 1
    },
    {
      ""flange_id"": 12,
      ""flange_length"": 71,
      ""quantity_required"": 2
    },
    {
      ""flange_id"": 13,
      ""flange_length"": 97,
      ""quantity_required"": 5
    },
    {
      ""flange_id"": 14,
      ""flange_length"": 87,
      ""quantity_required"": 6
    },
    {
      ""flange_id"": 15,
      ""flange_length"": 25,
      ""quantity_required"": 6
    },
    {
      ""flange_id"": 16,
      ""flange_length"": 72,
      ""quantity_required"": 3
    },
    {
      ""flange_id"": 17,
      ""flange_length"": 91,
      ""quantity_required"": 2
    },
    {
      ""flange_id"": 18,
      ""flange_length"": 38,
      ""quantity_required"": 2
    }
  ]
}

Oh, and when you send the actual plan, just stick to this simple JSON shape so it's easy to parse. Something like:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Here’s what that sketch means in plain talk: ""solution"" is a list of cut patterns (one pattern per channel). Each object in the list shows which piece types and how many of each you’d cut from that channel β€” the keys are the piece-type placeholders and the numbers are counts. It’s just the expected shape, not the final, filled-in answer.

Please make sure to use the exact identifiers from the instance input β€” don’t rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [51, 66, 30, 49, 45, 32, 69, 86, 44, 64, 74, 71, 97, 87, 25, 72, 91, 38], 'demands': [4, 4, 2, 3, 5, 5, 2, 2, 4, 2, 1, 2, 5, 6, 6, 3, 2, 2], 'solution_patterns': [{'15': 2}, {'13': 1, '14': 1, '17': 1}, {'13': 1, '14': 1, '17': 1}, {'11': 2}, {'10': 1, '15': 1}, {'8': 1, '12': 1}, {'7': 1, '9': 1}, {'7': 1, '9': 1}, {'6': 2}, {'4': 1, '13': 1}, {'4': 1, '13': 1}, {'4': 1, '5': 1, '8': 1, '14': 1}, {'4': 1, '5': 1, '8': 1, '14': 1}, {'4': 1, '5': 1, '8': 1, '14': 1}, {'3': 3}, {'2': 1, '14': 1, '16': 1}, {'2': 1, '14': 1, '16': 1}, {'2': 1, '5': 1, '13': 1}, {'2': 1, '5': 1, '13': 1}, {'1': 2}, {'1': 2}, {'0': 1, '12': 1}, {'0': 1, '12': 1}, {'0': 1, '12': 1}, {'0': 1, '12': 1}], 'obj': 25, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'15': 2}, {'13': 1, '14': 1, '17': 1}, {'13': 1, '14': 1, '17': 1}, {'11': 2}, {'10': 1, '15': 1}, {'8': 1, '12': 1}, {'7': 1, '9': 1}, {'7': 1, '9': 1}, {'6': 2}, {'4': 1, '13': 1}, {'4': 1, '13': 1}, {'4': 1, '5': 1, '8': 1, '14': 1}, {'4': 1, '5': 1, '8': 1, '14': 1}, {'4': 1, '5': 1, '8': 1, '14': 1}, {'3': 3}, {'2': 1, '14': 1, '16': 1}, {'2': 1, '14': 1, '16': 1}, {'2': 1, '5': 1, '13': 1}, {'2': 1, '5': 1, '13': 1}, {'1': 2}, {'1': 2}, {'0': 1, '12': 1}, {'0': 1, '12': 1}, {'0': 1, '12': 1}, {'0': 1, '12': 1}]",25,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 18, 'items': [{'item_id': 1, 'width': 51, 'demand': 4}, {'item_id': 2, 'width': 66, 'demand': 4}, {'item_id': 3, 'width': 30, 'demand': 2}, {'item_id': 4, 'width': 49, 'demand': 3}, {'item_id': 5, 'width': 45, 'demand': 5}, {'item_id': 6, 'width': 32, 'demand': 5}, {'item_id': 7, 'width': 69, 'demand': 2}, {'item_id': 8, 'width': 86, 'demand': 2}, {'item_id': 9, 'width': 44, 'demand': 4}, {'item_id': 10, 'width': 64, 'demand': 2}, {'item_id': 11, 'width': 74, 'demand': 1}, {'item_id': 12, 'width': 71, 'demand': 2}, {'item_id': 13, 'width': 97, 'demand': 5}, {'item_id': 14, 'width': 87, 'demand': 6}, {'item_id': 15, 'width': 25, 'demand': 6}, {'item_id': 16, 'width': 72, 'demand': 3}, {'item_id': 17, 'width': 91, 'demand': 2}, {'item_id': 18, 'width': 38, 'demand': 2}]}","[{'16': 2}, {'14': 1, '15': 1, '18': 1}, {'14': 1, '15': 1, '18': 1}, {'12': 2}, {'11': 1, '16': 1}, {'9': 1, '13': 1}, {'8': 1, '10': 1}, {'8': 1, '10': 1}, {'7': 2}, {'5': 1, '14': 1}, {'5': 1, '14': 1}, {'5': 1, '6': 1, '9': 1, '15': 1}, {'5': 1, '6': 1, '9': 1, '15': 1}, {'5': 1, '6': 1, '9': 1, '15': 1}, {'4': 3}, {'3': 1, '15': 1, '17': 1}, {'3': 1, '15': 1, '17': 1}, {'3': 1, '6': 1, '14': 1}, {'3': 1, '6': 1, '14': 1}, {'2': 2}, {'2': 2}, {'1': 1, '13': 1}, {'1': 1, '13': 1}, {'1': 1, '13': 1}, {'1': 1, '13': 1}]",39,json,1
CSP,CSP,"On a busy morning the leatherworker must break down long straps into various belt-piece lengths to meet all the orders on the board. The decision is how to group cuts on each strap so every requested quantity is produced exactly, and the aim is to use the smallest number of straps overall β€” the simplest way to judge a plan is to count how many straps were used, with a lower count being better. No single strap can have cuts that add up to more than its length. The specific lengths and quantities are shown below.

Each strap has a usable length of 150.0; cuts placed on a single strap may not exceed that length.
Order A: produce exactly 1 pieces of length 30.
Order B: produce exactly 1 pieces of length 67.
Order C: produce exactly 1 pieces of length 85.
Order D: produce exactly 4 pieces of length 71.
Order E: produce exactly 1 pieces of length 88.
Order F: produce exactly 2 pieces of length 39.
Order G: produce exactly 1 pieces of length 61.
Order H: produce exactly 1 pieces of length 35.
Order I: produce exactly 1 pieces of length 59.
Order J: produce exactly 3 pieces of length 37.
Order K: produce exactly 1 pieces of length 53.
Order L: produce exactly 5 pieces of length 57.
Order M: produce exactly 1 pieces of length 34.
Order N: produce exactly 1 pieces of length 49.
Order O: produce exactly 1 pieces of length 66.
Order P: produce exactly 2 pieces of length 89.
Order Q: produce exactly 2 pieces of length 78.
Order R: produce exactly 1 pieces of length 36.
Order S: produce exactly 5 pieces of length 69.
Order T: produce exactly 2 pieces of length 50.
Order U: produce exactly 3 pieces of length 75.
Order V: produce exactly 2 pieces of length 77.
The leatherworker must group cuts to produce every required piece while minimizing the total number of straps used.

If you want to hand me a plan, a nice, compact way to show it is in this little JSON shape below β€” just a relaxed example of what I expect, nothing fancy or final.

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

This is just a sketch: ""solution"" holds a list of straps (one object per strap), and each object lists how many pieces of each requested length come from that strap. Think of each top-level array entry as a single strap and the pairs inside as ""which item, how many"" for that strap.

Keep in mind this is only the expected shape, not the actual cutting plan β€” you'll fill it with the real identifiers and counts.

Please also remember: use the exact identifiers from the instance input with no renaming and no new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [30, 67, 85, 71, 88, 39, 61, 35, 59, 37, 53, 57, 34, 49, 66, 89, 78, 36, 69, 50, 75, 77], 'demands': [1, 1, 1, 4, 1, 2, 1, 1, 1, 3, 1, 5, 1, 1, 1, 2, 2, 1, 5, 2, 3, 2], 'solution_patterns': [{'20': 2}, {'18': 1, '21': 1}, {'18': 1, '21': 1}, {'16': 1, '18': 1}, {'16': 1, '18': 1}, {'13': 1, '19': 2}, {'12': 1, '14': 1, '19': 1}, {'11': 1, '15': 1}, {'11': 2, '17': 1}, {'9': 2, '20': 1}, {'8': 1, '15': 1}, {'5': 2, '18': 1}, {'4': 1, '6': 1}, {'3': 2}, {'3': 2}, {'2': 1, '10': 1}, {'1': 1, '7': 1, '9': 1}, {'0': 1, '11': 2}], 'obj': 18, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'20': 2}, {'18': 1, '21': 1}, {'18': 1, '21': 1}, {'16': 1, '18': 1}, {'16': 1, '18': 1}, {'13': 1, '19': 2}, {'12': 1, '14': 1, '19': 1}, {'11': 1, '15': 1}, {'11': 2, '17': 1}, {'9': 2, '20': 1}, {'8': 1, '15': 1}, {'5': 2, '18': 1}, {'4': 1, '6': 1}, {'3': 2}, {'3': 2}, {'2': 1, '10': 1}, {'1': 1, '7': 1, '9': 1}, {'0': 1, '11': 2}]",18,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 22, 'items': [{'item_id': 'A', 'width': 30, 'demand': 1}, {'item_id': 'B', 'width': 67, 'demand': 1}, {'item_id': 'C', 'width': 85, 'demand': 1}, {'item_id': 'D', 'width': 71, 'demand': 4}, {'item_id': 'E', 'width': 88, 'demand': 1}, {'item_id': 'F', 'width': 39, 'demand': 2}, {'item_id': 'G', 'width': 61, 'demand': 1}, {'item_id': 'H', 'width': 35, 'demand': 1}, {'item_id': 'I', 'width': 59, 'demand': 1}, {'item_id': 'J', 'width': 37, 'demand': 3}, {'item_id': 'K', 'width': 53, 'demand': 1}, {'item_id': 'L', 'width': 57, 'demand': 5}, {'item_id': 'M', 'width': 34, 'demand': 1}, {'item_id': 'N', 'width': 49, 'demand': 1}, {'item_id': 'O', 'width': 66, 'demand': 1}, {'item_id': 'P', 'width': 89, 'demand': 2}, {'item_id': 'Q', 'width': 78, 'demand': 2}, {'item_id': 'R', 'width': 36, 'demand': 1}, {'item_id': 'S', 'width': 69, 'demand': 5}, {'item_id': 'T', 'width': 50, 'demand': 2}, {'item_id': 'U', 'width': 75, 'demand': 3}, {'item_id': 'V', 'width': 77, 'demand': 2}]}","[{'U': 2}, {'S': 1, 'V': 1}, {'S': 1, 'V': 1}, {'Q': 1, 'S': 1}, {'Q': 1, 'S': 1}, {'N': 1, 'T': 2}, {'M': 1, 'O': 1, 'T': 1}, {'L': 1, 'P': 1}, {'L': 2, 'R': 1}, {'J': 2, 'U': 1}, {'I': 1, 'P': 1}, {'F': 2, 'S': 1}, {'E': 1, 'G': 1}, {'D': 2}, {'D': 2}, {'C': 1, 'K': 1}, {'B': 1, 'H': 1, 'J': 1}, {'A': 1, 'L': 2}]",40,nl,names
CSP,CSP,"We’ve got a craft room scene: several identical yarn beams on the table and a list of project pieces that require specific lengths and quantities. The decision is how to slice each beam into those pieces so every piece on the list is delivered, never cutting more from a beam than its fixed length, and trying to keep the total number of beams pulled into work as low as possible β€” the score for any plan is just the number of beams used. The precise lengths and demands are given below.

- **beam_length**: 150.0

| piece_id | piece_length | piece_quantity |
|---|---|---|
| 0 | 32 | 1 |
| 1 | 27 | 6 |
| 2 | 52 | 2 |
| 3 | 61 | 1 |
| 4 | 43 | 4 |
| 5 | 66 | 2 |
| 6 | 69 | 2 |
| 7 | 84 | 1 |
| 8 | 38 | 1 |
| 9 | 78 | 1 |
| 10 | 24 | 1 |
| 11 | 83 | 4 |
| 12 | 72 | 4 |
| 13 | 91 | 1 |
| 14 | 95 | 3 |
| 15 | 31 | 2 |
| 16 | 54 | 2 |
| 17 | 75 | 1 |
| 18 | 46 | 1 |
| 19 | 85 | 2 |
| 20 | 48 | 5 |
| 21 | 100 | 3 |
| 22 | 99 | 1 |
| 23 | 58 | 1 |
| 24 | 76 | 1 |

And when you're ready for an answer, I’ll put it in a simple JSON layout like this so it’s easy to read and parse:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Here ""solution"" is a list of beams (one object per beam). Each object lists how many pieces of each piece type are cut from that beam: the placeholder keys (like <item_id>) stand for a piece type, and the numbers are how many pieces of that type you get from that beam. The ""..."" just means you can have more beams in the list β€” this is just a sketch of the expected shape, not the final answer.

Please use the identifiers exactly as they appear in the instance input β€” do not rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [32, 27, 52, 61, 43, 66, 69, 84, 38, 78, 24, 83, 72, 91, 95, 31, 54, 75, 46, 85, 48, 100, 99, 58, 76], 'demands': [1, 6, 2, 1, 4, 2, 2, 1, 1, 1, 1, 4, 4, 1, 3, 2, 2, 1, 1, 2, 5, 3, 1, 1, 1], 'solution_patterns': [{'20': 1, '22': 1}, {'20': 1, '21': 1}, {'20': 1, '21': 1}, {'18': 1, '21': 1}, {'15': 2, '19': 1}, {'14': 1, '20': 1}, {'14': 1, '16': 1}, {'14': 1, '16': 1}, {'13': 1, '23': 1}, {'12': 1, '24': 1}, {'12': 1, '24': 1}, {'12': 1, '17': 1}, {'9': 1, '12': 1}, {'6': 2}, {'5': 1, '11': 1}, {'5': 1, '11': 1}, {'4': 1, '16': 1, '20': 1}, {'4': 1, '10': 1, '11': 1}, {'3': 1, '19': 1}, {'1': 1, '7': 1, '8': 1}, {'1': 2, '2': 1, '4': 1}, {'1': 2, '2': 1, '4': 1}, {'0': 1, '1': 1, '11': 1}], 'obj': 23, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'20': 1, '22': 1}, {'20': 1, '21': 1}, {'20': 1, '21': 1}, {'18': 1, '21': 1}, {'15': 2, '19': 1}, {'14': 1, '20': 1}, {'14': 1, '16': 1}, {'14': 1, '16': 1}, {'13': 1, '23': 1}, {'12': 1, '24': 1}, {'12': 1, '24': 1}, {'12': 1, '17': 1}, {'9': 1, '12': 1}, {'6': 2}, {'5': 1, '11': 1}, {'5': 1, '11': 1}, {'4': 1, '16': 1, '20': 1}, {'4': 1, '10': 1, '11': 1}, {'3': 1, '19': 1}, {'1': 1, '7': 1, '8': 1}, {'1': 2, '2': 1, '4': 1}, {'1': 2, '2': 1, '4': 1}, {'0': 1, '1': 1, '11': 1}]",23,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 25, 'items': [{'item_id': 0, 'width': 32, 'demand': 1}, {'item_id': 1, 'width': 27, 'demand': 6}, {'item_id': 2, 'width': 52, 'demand': 2}, {'item_id': 3, 'width': 61, 'demand': 1}, {'item_id': 4, 'width': 43, 'demand': 4}, {'item_id': 5, 'width': 66, 'demand': 2}, {'item_id': 6, 'width': 69, 'demand': 2}, {'item_id': 7, 'width': 84, 'demand': 1}, {'item_id': 8, 'width': 38, 'demand': 1}, {'item_id': 9, 'width': 78, 'demand': 1}, {'item_id': 10, 'width': 24, 'demand': 1}, {'item_id': 11, 'width': 83, 'demand': 4}, {'item_id': 12, 'width': 72, 'demand': 4}, {'item_id': 13, 'width': 91, 'demand': 1}, {'item_id': 14, 'width': 95, 'demand': 3}, {'item_id': 15, 'width': 31, 'demand': 2}, {'item_id': 16, 'width': 54, 'demand': 2}, {'item_id': 17, 'width': 75, 'demand': 1}, {'item_id': 18, 'width': 46, 'demand': 1}, {'item_id': 19, 'width': 85, 'demand': 2}, {'item_id': 20, 'width': 48, 'demand': 5}, {'item_id': 21, 'width': 100, 'demand': 3}, {'item_id': 22, 'width': 99, 'demand': 1}, {'item_id': 23, 'width': 58, 'demand': 1}, {'item_id': 24, 'width': 76, 'demand': 1}]}","[{'20': 1, '22': 1}, {'20': 1, '21': 1}, {'20': 1, '21': 1}, {'18': 1, '21': 1}, {'15': 2, '19': 1}, {'14': 1, '20': 1}, {'14': 1, '16': 1}, {'14': 1, '16': 1}, {'13': 1, '23': 1}, {'12': 1, '24': 1}, {'12': 1, '24': 1}, {'12': 1, '17': 1}, {'9': 1, '12': 1}, {'6': 2}, {'5': 1, '11': 1}, {'5': 1, '11': 1}, {'4': 1, '16': 1, '20': 1}, {'4': 1, '10': 1, '11': 1}, {'3': 1, '19': 1}, {'1': 1, '7': 1, '8': 1}, {'1': 2, '2': 1, '4': 1}, {'1': 2, '2': 1, '4': 1}, {'0': 1, '1': 1, '11': 1}]",41,markdown_table,0
CSP,CSP,"At the plant, a packaging designer is mapping cuts on long plastic sheets to supply different pouch sizes for multiple products. The task is to choose how to slice each sheet so that the exact required quantities of each panel are produced (no omissions or duplicates) and so that the sheet consumption is kept to a minimum. The metric to compare layouts is just the number of full sheets they use β€” lower is better β€” and each sheet’s combined pieces must not exceed its fixed length. The specific panel lengths and required counts come next below.

- **sheet_length**: 150.0

| panel_type_id | panel_length | required_quantity |
|---|---|---|
| 1 | 32 | 4 |
| 2 | 49 | 2 |
| 3 | 34 | 2 |
| 4 | 88 | 3 |
| 5 | 68 | 3 |
| 6 | 95 | 4 |
| 7 | 83 | 1 |
| 8 | 21 | 1 |
| 9 | 98 | 2 |
| 10 | 40 | 3 |
| 11 | 85 | 1 |
| 12 | 26 | 2 |
| 13 | 93 | 3 |
| 14 | 69 | 4 |
| 15 | 91 | 5 |
| 16 | 74 | 7 |
| 17 | 20 | 4 |
| 18 | 57 | 2 |
| 19 | 48 | 2 |
| 20 | 76 | 5 |
| 21 | 28 | 4 |
| 22 | 44 | 3 |
| 23 | 77 | 3 |
| 24 | 96 | 4 |

I'll sketch the shape I want the cut assignments to take in a simple JSON layout β€” nothing fancy, just a friendly template you can follow.

{
  ""solution"": [
    {""<patch_type_id>"": 2, ""<patch_type_id>"": 1},
    ...
  ]
}

Here’s a quick, easy explanation of the pieces so it reads like a form rather than a spec:
- ""solution"" is a list of sheets (one entry per sheet layout).
- Each object inside the list shows which patch types go on that sheet: the placeholder keys are patch-type identifiers (in angle brackets) and the numbers are how many of that patch appear on the sheet.
- The block above is just a sketch of the expected shape, not the actual cutting plan.

Please make sure to use the exact identifiers from the instance input β€” do not rename them and do not create new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [32, 49, 34, 88, 68, 95, 83, 21, 98, 40, 85, 26, 93, 69, 91, 74, 20, 57, 48, 76, 28, 44, 77, 96], 'demands': [4, 2, 2, 3, 3, 4, 1, 1, 2, 3, 1, 2, 3, 4, 5, 7, 4, 2, 2, 5, 4, 3, 3, 4], 'solution_patterns': [{'15': 1, '19': 1}, {'15': 2}, {'15': 2}, {'15': 2}, {'14': 1, '18': 1}, {'14': 1, '17': 1}, {'14': 1, '17': 1}, {'13': 1, '22': 1}, {'13': 1, '22': 1}, {'13': 1, '22': 1}, {'13': 1, '19': 1}, {'12': 1, '18': 1}, {'11': 1, '14': 1, '20': 1}, {'11': 1, '14': 1, '20': 1}, {'9': 1, '23': 1}, {'9': 1, '23': 1}, {'6': 1, '20': 2}, {'5': 1, '21': 1}, {'5': 1, '21': 1}, {'5': 1, '21': 1}, {'5': 1, '21': 1}, {'4': 1, '19': 1}, {'4': 1, '19': 1}, {'4': 1, '19': 1}, {'3': 1, '16': 3}, {'3': 1, '16': 3}, {'3': 1, '9': 1, '16': 1}, {'2': 1, '7': 1, '12': 1}, {'2': 1, '7': 1, '12': 1}, {'1': 1, '23': 1}, {'1': 1, '23': 1}, {'0': 1, '8': 1, '16': 1}, {'0': 1, '8': 1, '16': 1}, {'0': 2, '10': 1}], 'obj': 34, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'15': 1, '19': 1}, {'15': 2}, {'15': 2}, {'15': 2}, {'14': 1, '18': 1}, {'14': 1, '17': 1}, {'14': 1, '17': 1}, {'13': 1, '22': 1}, {'13': 1, '22': 1}, {'13': 1, '22': 1}, {'13': 1, '19': 1}, {'12': 1, '18': 1}, {'11': 1, '14': 1, '20': 1}, {'11': 1, '14': 1, '20': 1}, {'9': 1, '23': 1}, {'9': 1, '23': 1}, {'6': 1, '20': 2}, {'5': 1, '21': 1}, {'5': 1, '21': 1}, {'5': 1, '21': 1}, {'5': 1, '21': 1}, {'4': 1, '19': 1}, {'4': 1, '19': 1}, {'4': 1, '19': 1}, {'3': 1, '16': 3}, {'3': 1, '16': 3}, {'3': 1, '9': 1, '16': 1}, {'2': 1, '7': 1, '12': 1}, {'2': 1, '7': 1, '12': 1}, {'1': 1, '23': 1}, {'1': 1, '23': 1}, {'0': 1, '8': 1, '16': 1}, {'0': 1, '8': 1, '16': 1}, {'0': 2, '10': 1}]",34,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 24, 'items': [{'item_id': 1, 'width': 32, 'demand': 4}, {'item_id': 2, 'width': 49, 'demand': 2}, {'item_id': 3, 'width': 34, 'demand': 2}, {'item_id': 4, 'width': 88, 'demand': 3}, {'item_id': 5, 'width': 68, 'demand': 3}, {'item_id': 6, 'width': 95, 'demand': 4}, {'item_id': 7, 'width': 83, 'demand': 1}, {'item_id': 8, 'width': 21, 'demand': 1}, {'item_id': 9, 'width': 98, 'demand': 2}, {'item_id': 10, 'width': 40, 'demand': 3}, {'item_id': 11, 'width': 85, 'demand': 1}, {'item_id': 12, 'width': 26, 'demand': 2}, {'item_id': 13, 'width': 93, 'demand': 3}, {'item_id': 14, 'width': 69, 'demand': 4}, {'item_id': 15, 'width': 91, 'demand': 5}, {'item_id': 16, 'width': 74, 'demand': 7}, {'item_id': 17, 'width': 20, 'demand': 4}, {'item_id': 18, 'width': 57, 'demand': 2}, {'item_id': 19, 'width': 48, 'demand': 2}, {'item_id': 20, 'width': 76, 'demand': 5}, {'item_id': 21, 'width': 28, 'demand': 4}, {'item_id': 22, 'width': 44, 'demand': 3}, {'item_id': 23, 'width': 77, 'demand': 3}, {'item_id': 24, 'width': 96, 'demand': 4}]}","[{'16': 1, '20': 1}, {'16': 2}, {'16': 2}, {'16': 2}, {'15': 1, '19': 1}, {'15': 1, '18': 1}, {'15': 1, '18': 1}, {'14': 1, '23': 1}, {'14': 1, '23': 1}, {'14': 1, '23': 1}, {'14': 1, '20': 1}, {'13': 1, '19': 1}, {'12': 1, '15': 1, '21': 1}, {'12': 1, '15': 1, '21': 1}, {'10': 1, '24': 1}, {'10': 1, '24': 1}, {'7': 1, '21': 2}, {'6': 1, '22': 1}, {'6': 1, '22': 1}, {'6': 1, '22': 1}, {'6': 1, '22': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'4': 1, '17': 3}, {'4': 1, '17': 3}, {'4': 1, '10': 1, '17': 1}, {'3': 1, '8': 1, '13': 1}, {'3': 1, '8': 1, '13': 1}, {'2': 1, '24': 1}, {'2': 1, '24': 1}, {'1': 1, '9': 1, '17': 1}, {'1': 1, '9': 1, '17': 1}, {'1': 2, '11': 1}]",42,markdown_table,1
CSP,CSP,"In a small workshop a seamstress has to turn identical bolts of fabric into a list of curtain panels, each with a specified width and how many are needed. The question to answer is how to assign cuts to each bolt so every requested panel appears the exact number of times (no shortages or duplicates) while using as few bolts as she can. It’s easy to judge: count the number of bolts used by a plan β€” fewer bolts means a better plan. Remember that the sum of widths cut from any bolt can’t exceed that bolt’s fixed length. The exact bolt length and the panel width-and-quantity list are shown below.

Bolt length is 150.0; assign cuts so the sum of panel widths on each bolt does not exceed this length.
Panel type A: width 87, required quantity 4.
Panel type B: width 52, required quantity 4.
Panel type C: width 84, required quantity 1.
Panel type D: width 90, required quantity 1.
Panel type E: width 67, required quantity 2.
Panel type F: width 74, required quantity 5.
Panel type G: width 26, required quantity 2.
Panel type H: width 35, required quantity 3.
Panel type I: width 97, required quantity 2.
Panel type J: width 43, required quantity 5.
Panel type K: width 100, required quantity 5.
Panel type L: width 49, required quantity 2.
Panel type M: width 37, required quantity 4.
Panel type N: width 83, required quantity 7.
Panel type O: width 93, required quantity 3.
Panel type P: width 96, required quantity 2.
Panel type Q: width 28, required quantity 2.
Panel type R: width 76, required quantity 2.
Panel type S: width 61, required quantity 4.
Panel type T: width 59, required quantity 6.
Panel type U: width 45, required quantity 1.
Minimize the number of bolts used while producing each panel type in the exact required quantity.

If you want to hand me a cutting plan, a tiny JSON sketch like this is perfect β€” just a casual way to show which panels come from each bolt:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of ""solution"" as a list of bolts. Each object in that list is one bolt, and inside an object each ""<item_id>"" entry says which panel type (by its identifier) and how many of that panel were cut from that bolt. The ""..."" just means ""and so on"" if there are more bolts. This is only the expected shape of the reply, not the actual cutting plan.

Please use the exact identifiers from the instance input β€” do not rename them or invent new labels. 
- for example: Valid identifiers look like plain numbers such as ""1"" or ""23"", single capital letters like ""A"" or ""B"", or a capital letter followed by digits like ""A1"" or ""X7"".","{'weights': [87, 52, 84, 90, 67, 74, 26, 35, 97, 43, 100, 49, 37, 83, 93, 96, 28, 76, 61, 59, 45], 'demands': [4, 4, 1, 1, 2, 5, 2, 3, 2, 5, 5, 2, 4, 7, 3, 2, 2, 2, 4, 6, 1], 'solution_patterns': [{'13': 1, '19': 1}, {'13': 1, '19': 1}, {'13': 1, '19': 1}, {'13': 1, '19': 1}, {'13': 1, '18': 1}, {'12': 1, '13': 1, '16': 1}, {'12': 2, '17': 1}, {'11': 1, '15': 1}, {'10': 1, '11': 1}, {'9': 1, '10': 1}, {'9': 1, '10': 1}, {'9': 1, '10': 1}, {'9': 1, '10': 1}, {'8': 1, '20': 1}, {'7': 2, '9': 1, '12': 1}, {'6': 2, '15': 1}, {'5': 1, '17': 1}, {'5': 2}, {'5': 2}, {'4': 1, '13': 1}, {'4': 1, '13': 1}, {'3': 1, '19': 1}, {'2': 1, '19': 1}, {'1': 1, '14': 1}, {'1': 1, '14': 1}, {'1': 1, '14': 1}, {'1': 1, '8': 1}, {'0': 1, '18': 1}, {'0': 1, '18': 1}, {'0': 1, '18': 1}, {'0': 1, '7': 1, '16': 1}], 'obj': 31, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'13': 1, '19': 1}, {'13': 1, '19': 1}, {'13': 1, '19': 1}, {'13': 1, '19': 1}, {'13': 1, '18': 1}, {'12': 1, '13': 1, '16': 1}, {'12': 2, '17': 1}, {'11': 1, '15': 1}, {'10': 1, '11': 1}, {'9': 1, '10': 1}, {'9': 1, '10': 1}, {'9': 1, '10': 1}, {'9': 1, '10': 1}, {'8': 1, '20': 1}, {'7': 2, '9': 1, '12': 1}, {'6': 2, '15': 1}, {'5': 1, '17': 1}, {'5': 2}, {'5': 2}, {'4': 1, '13': 1}, {'4': 1, '13': 1}, {'3': 1, '19': 1}, {'2': 1, '19': 1}, {'1': 1, '14': 1}, {'1': 1, '14': 1}, {'1': 1, '14': 1}, {'1': 1, '8': 1}, {'0': 1, '18': 1}, {'0': 1, '18': 1}, {'0': 1, '18': 1}, {'0': 1, '7': 1, '16': 1}]",31,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 21, 'items': [{'item_id': 'A', 'width': 87, 'demand': 4}, {'item_id': 'B', 'width': 52, 'demand': 4}, {'item_id': 'C', 'width': 84, 'demand': 1}, {'item_id': 'D', 'width': 90, 'demand': 1}, {'item_id': 'E', 'width': 67, 'demand': 2}, {'item_id': 'F', 'width': 74, 'demand': 5}, {'item_id': 'G', 'width': 26, 'demand': 2}, {'item_id': 'H', 'width': 35, 'demand': 3}, {'item_id': 'I', 'width': 97, 'demand': 2}, {'item_id': 'J', 'width': 43, 'demand': 5}, {'item_id': 'K', 'width': 100, 'demand': 5}, {'item_id': 'L', 'width': 49, 'demand': 2}, {'item_id': 'M', 'width': 37, 'demand': 4}, {'item_id': 'N', 'width': 83, 'demand': 7}, {'item_id': 'O', 'width': 93, 'demand': 3}, {'item_id': 'P', 'width': 96, 'demand': 2}, {'item_id': 'Q', 'width': 28, 'demand': 2}, {'item_id': 'R', 'width': 76, 'demand': 2}, {'item_id': 'S', 'width': 61, 'demand': 4}, {'item_id': 'T', 'width': 59, 'demand': 6}, {'item_id': 'U', 'width': 45, 'demand': 1}]}","[{'N': 1, 'T': 1}, {'N': 1, 'T': 1}, {'N': 1, 'T': 1}, {'N': 1, 'T': 1}, {'N': 1, 'S': 1}, {'M': 1, 'N': 1, 'Q': 1}, {'M': 2, 'R': 1}, {'L': 1, 'P': 1}, {'K': 1, 'L': 1}, {'J': 1, 'K': 1}, {'J': 1, 'K': 1}, {'J': 1, 'K': 1}, {'J': 1, 'K': 1}, {'I': 1, 'U': 1}, {'H': 2, 'J': 1, 'M': 1}, {'G': 2, 'P': 1}, {'F': 1, 'R': 1}, {'F': 2}, {'F': 2}, {'E': 1, 'N': 1}, {'E': 1, 'N': 1}, {'D': 1, 'T': 1}, {'C': 1, 'T': 1}, {'B': 1, 'O': 1}, {'B': 1, 'O': 1}, {'B': 1, 'O': 1}, {'B': 1, 'I': 1}, {'A': 1, 'S': 1}, {'A': 1, 'S': 1}, {'A': 1, 'S': 1}, {'A': 1, 'H': 1, 'Q': 1}]",43,nl,names
CSP,CSP,"Many people have requested shelves in different sizes, and the workshop needs to plan how to split its long stock boards to fill every order. The decision is which sets of cuts to make on each board so that the precise requested count of each shelf length is produced β€” every piece must be accounted for, no extras or misses. The one that’s preferred is the plan that finishes everything while using the smallest number of raw boards; you figure that out by tallying the boards used. The exact specs and counts come below.

- **board_length**: 150.0

| shelf_type_id | shelf_length | required_quantity |
|---|---|---|
| 1 | 20 | 1 |
| 2 | 27 | 4 |
| 3 | 39 | 1 |
| 4 | 21 | 4 |
| 5 | 87 | 2 |
| 6 | 32 | 4 |
| 7 | 96 | 4 |
| 8 | 79 | 4 |
| 9 | 53 | 3 |
| 10 | 95 | 4 |
| 11 | 98 | 2 |
| 12 | 86 | 3 |
| 13 | 100 | 3 |
| 14 | 88 | 2 |
| 15 | 42 | 5 |
| 16 | 45 | 5 |
| 17 | 38 | 2 |
| 18 | 33 | 2 |
| 19 | 57 | 3 |
| 20 | 75 | 3 |
| 21 | 69 | 1 |
| 22 | 82 | 2 |
| 23 | 22 | 2 |

If you like, return the cutting plan in a simple JSON layout so it's easy for the shop to read and apply. Here’s the shape I expect:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of ""solution"" as a list of boards. Each object in the list is one board and shows how many pieces of each requested length come off that board β€” the placeholder key (<item_id>) stands in for an item identifier from the order and the numbers are counts of that item on that board. This is just a sketch of the expected shape, not the actual answer.

Please use the exact identifiers from the instance input β€” do not rename them or invent new labels. 
- for example: Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [20, 27, 39, 21, 87, 32, 96, 79, 53, 95, 98, 86, 100, 88, 42, 45, 38, 33, 57, 75, 69, 82, 22], 'demands': [1, 4, 1, 4, 2, 4, 4, 4, 3, 4, 2, 3, 3, 2, 5, 5, 2, 2, 3, 3, 1, 2, 2], 'solution_patterns': [{'19': 2}, {'13': 1, '18': 1}, {'13': 1, '18': 1}, {'12': 1, '16': 1}, {'12': 1, '15': 1}, {'12': 1, '14': 1}, {'11': 1, '18': 1}, {'10': 1, '14': 1}, {'10': 1, '14': 1}, {'9': 1, '22': 2}, {'8': 1, '9': 1}, {'8': 1, '9': 1}, {'7': 1, '20': 1}, {'7': 1, '17': 2}, {'7': 1, '16': 1, '22': 1}, {'6': 1, '15': 1}, {'6': 1, '15': 1}, {'6': 1, '15': 1}, {'6': 1, '15': 1}, {'5': 2, '11': 1}, {'5': 2, '11': 1}, {'4': 1, '8': 1}, {'3': 1, '14': 1, '21': 1}, {'3': 1, '14': 1, '21': 1}, {'1': 1, '4': 1, '22': 1}, {'1': 1, '2': 1, '7': 1}, {'1': 2, '9': 1}, {'0': 1, '3': 2, '19': 1}], 'obj': 28, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'19': 2}, {'13': 1, '18': 1}, {'13': 1, '18': 1}, {'12': 1, '16': 1}, {'12': 1, '15': 1}, {'12': 1, '14': 1}, {'11': 1, '18': 1}, {'10': 1, '14': 1}, {'10': 1, '14': 1}, {'9': 1, '22': 2}, {'8': 1, '9': 1}, {'8': 1, '9': 1}, {'7': 1, '20': 1}, {'7': 1, '17': 2}, {'7': 1, '16': 1, '22': 1}, {'6': 1, '15': 1}, {'6': 1, '15': 1}, {'6': 1, '15': 1}, {'6': 1, '15': 1}, {'5': 2, '11': 1}, {'5': 2, '11': 1}, {'4': 1, '8': 1}, {'3': 1, '14': 1, '21': 1}, {'3': 1, '14': 1, '21': 1}, {'1': 1, '4': 1, '22': 1}, {'1': 1, '2': 1, '7': 1}, {'1': 2, '9': 1}, {'0': 1, '3': 2, '19': 1}]",28,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 23, 'items': [{'item_id': 1, 'width': 20, 'demand': 1}, {'item_id': 2, 'width': 27, 'demand': 4}, {'item_id': 3, 'width': 39, 'demand': 1}, {'item_id': 4, 'width': 21, 'demand': 4}, {'item_id': 5, 'width': 87, 'demand': 2}, {'item_id': 6, 'width': 32, 'demand': 4}, {'item_id': 7, 'width': 96, 'demand': 4}, {'item_id': 8, 'width': 79, 'demand': 4}, {'item_id': 9, 'width': 53, 'demand': 3}, {'item_id': 10, 'width': 95, 'demand': 4}, {'item_id': 11, 'width': 98, 'demand': 2}, {'item_id': 12, 'width': 86, 'demand': 3}, {'item_id': 13, 'width': 100, 'demand': 3}, {'item_id': 14, 'width': 88, 'demand': 2}, {'item_id': 15, 'width': 42, 'demand': 5}, {'item_id': 16, 'width': 45, 'demand': 5}, {'item_id': 17, 'width': 38, 'demand': 2}, {'item_id': 18, 'width': 33, 'demand': 2}, {'item_id': 19, 'width': 57, 'demand': 3}, {'item_id': 20, 'width': 75, 'demand': 3}, {'item_id': 21, 'width': 69, 'demand': 1}, {'item_id': 22, 'width': 82, 'demand': 2}, {'item_id': 23, 'width': 22, 'demand': 2}]}","[{'20': 2}, {'14': 1, '19': 1}, {'14': 1, '19': 1}, {'13': 1, '17': 1}, {'13': 1, '16': 1}, {'13': 1, '15': 1}, {'12': 1, '19': 1}, {'11': 1, '15': 1}, {'11': 1, '15': 1}, {'10': 1, '23': 2}, {'9': 1, '10': 1}, {'9': 1, '10': 1}, {'8': 1, '21': 1}, {'8': 1, '18': 2}, {'8': 1, '17': 1, '23': 1}, {'7': 1, '16': 1}, {'7': 1, '16': 1}, {'7': 1, '16': 1}, {'7': 1, '16': 1}, {'6': 2, '12': 1}, {'6': 2, '12': 1}, {'5': 1, '9': 1}, {'4': 1, '15': 1, '22': 1}, {'4': 1, '15': 1, '22': 1}, {'2': 1, '5': 1, '23': 1}, {'2': 1, '3': 1, '8': 1}, {'2': 2, '10': 1}, {'1': 1, '4': 2, '20': 1}]",44,markdown_table,1
CSP,CSP,"Recently the shop received a batch of orders for cake layers of different thicknesses, and all the layers must be sliced from long dough logs. The task is to plan the cuts so every requested number of layers for each thickness is produced β€” no missing pieces and no unnecessary extras. The neatest solution is the one that gets everything done while burning through the fewest full dough logs; measure that by tallying the logs used. Each log’s total slices can’t add up to more thickness than the log provides. The exact figures are listed below.

Each dough log has 150.0 units of usable thickness.
Layer type 0: each slice 46 thick; need 2 slices.
Layer type 1: each slice 21 thick; need 1 slices.
Layer type 2: each slice 61 thick; need 3 slices.
Layer type 3: each slice 98 thick; need 3 slices.
Layer type 4: each slice 63 thick; need 4 slices.
Layer type 5: each slice 35 thick; need 2 slices.
Layer type 6: each slice 43 thick; need 2 slices.
Layer type 7: each slice 53 thick; need 5 slices.
Layer type 8: each slice 32 thick; need 1 slices.
Layer type 9: each slice 78 thick; need 1 slices.
Layer type 10: each slice 54 thick; need 3 slices.
Layer type 11: each slice 42 thick; need 3 slices.
Layer type 12: each slice 79 thick; need 7 slices.
Layer type 13: each slice 41 thick; need 1 slices.
Layer type 14: each slice 49 thick; need 3 slices.
Layer type 15: each slice 58 thick; need 4 slices.
Layer type 16: each slice 30 thick; need 5 slices.
Layer type 17: each slice 66 thick; need 3 slices.
Layer type 18: each slice 36 thick; need 3 slices.
Layer type 19: each slice 72 thick; need 8 slices.
Layer type 20: each slice 27 thick; need 3 slices.
Fulfill each listed demand exactly while minimizing the number of 150.0-unit logs consumed.

I'll keep the requested output in a simple JSON shape so it's easy to copy-paste β€” something like this:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of it like a little form: ""solution"" is a list of cut plans, and each object inside lists layer-type placeholders with how many slices of that thickness are in that plan. It's just the sketch of the shape I want you to follow β€” not the final cutting plan.

Please remember: all identifiers must be used exactly as they appear in the instance input β€” no renaming and no new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [46, 21, 61, 98, 63, 35, 43, 53, 32, 78, 54, 42, 79, 41, 49, 58, 30, 66, 36, 72, 27], 'demands': [2, 1, 3, 3, 4, 2, 2, 5, 1, 1, 3, 3, 7, 1, 3, 4, 5, 3, 3, 8, 3], 'solution_patterns': [{'19': 2}, {'19': 2}, {'19': 2}, {'12': 1, '13': 1, '16': 1}, {'11': 1, '12': 1, '20': 1}, {'11': 1, '12': 1, '20': 1}, {'10': 2, '11': 1}, {'9': 1, '19': 1}, {'7': 1, '16': 1, '17': 1}, {'7': 1, '16': 1, '17': 1}, {'6': 1, '7': 1, '10': 1}, {'6': 1, '7': 1, '10': 1}, {'5': 1, '12': 1, '18': 1}, {'5': 1, '12': 1, '18': 1}, {'4': 1, '15': 1, '20': 1}, {'4': 1, '12': 1}, {'4': 1, '12': 1}, {'3': 1, '14': 1}, {'3': 1, '14': 1}, {'3': 1, '14': 1}, {'2': 1, '15': 1, '16': 1}, {'2': 1, '15': 1, '16': 1}, {'2': 1, '7': 1, '18': 1}, {'1': 1, '4': 1, '17': 1}, {'0': 1, '8': 1, '19': 1}, {'0': 2, '15': 1}], 'obj': 26, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'19': 2}, {'19': 2}, {'19': 2}, {'12': 1, '13': 1, '16': 1}, {'11': 1, '12': 1, '20': 1}, {'11': 1, '12': 1, '20': 1}, {'10': 2, '11': 1}, {'9': 1, '19': 1}, {'7': 1, '16': 1, '17': 1}, {'7': 1, '16': 1, '17': 1}, {'6': 1, '7': 1, '10': 1}, {'6': 1, '7': 1, '10': 1}, {'5': 1, '12': 1, '18': 1}, {'5': 1, '12': 1, '18': 1}, {'4': 1, '15': 1, '20': 1}, {'4': 1, '12': 1}, {'4': 1, '12': 1}, {'3': 1, '14': 1}, {'3': 1, '14': 1}, {'3': 1, '14': 1}, {'2': 1, '15': 1, '16': 1}, {'2': 1, '15': 1, '16': 1}, {'2': 1, '7': 1, '18': 1}, {'1': 1, '4': 1, '17': 1}, {'0': 1, '8': 1, '19': 1}, {'0': 2, '15': 1}]",26,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 21, 'items': [{'item_id': 0, 'width': 46, 'demand': 2}, {'item_id': 1, 'width': 21, 'demand': 1}, {'item_id': 2, 'width': 61, 'demand': 3}, {'item_id': 3, 'width': 98, 'demand': 3}, {'item_id': 4, 'width': 63, 'demand': 4}, {'item_id': 5, 'width': 35, 'demand': 2}, {'item_id': 6, 'width': 43, 'demand': 2}, {'item_id': 7, 'width': 53, 'demand': 5}, {'item_id': 8, 'width': 32, 'demand': 1}, {'item_id': 9, 'width': 78, 'demand': 1}, {'item_id': 10, 'width': 54, 'demand': 3}, {'item_id': 11, 'width': 42, 'demand': 3}, {'item_id': 12, 'width': 79, 'demand': 7}, {'item_id': 13, 'width': 41, 'demand': 1}, {'item_id': 14, 'width': 49, 'demand': 3}, {'item_id': 15, 'width': 58, 'demand': 4}, {'item_id': 16, 'width': 30, 'demand': 5}, {'item_id': 17, 'width': 66, 'demand': 3}, {'item_id': 18, 'width': 36, 'demand': 3}, {'item_id': 19, 'width': 72, 'demand': 8}, {'item_id': 20, 'width': 27, 'demand': 3}]}","[{'19': 2}, {'19': 2}, {'19': 2}, {'12': 1, '13': 1, '16': 1}, {'11': 1, '12': 1, '20': 1}, {'11': 1, '12': 1, '20': 1}, {'10': 2, '11': 1}, {'9': 1, '19': 1}, {'7': 1, '16': 1, '17': 1}, {'7': 1, '16': 1, '17': 1}, {'6': 1, '7': 1, '10': 1}, {'6': 1, '7': 1, '10': 1}, {'5': 1, '12': 1, '18': 1}, {'5': 1, '12': 1, '18': 1}, {'4': 1, '15': 1, '20': 1}, {'4': 1, '12': 1}, {'4': 1, '12': 1}, {'3': 1, '14': 1}, {'3': 1, '14': 1}, {'3': 1, '14': 1}, {'2': 1, '15': 1, '16': 1}, {'2': 1, '15': 1, '16': 1}, {'2': 1, '7': 1, '18': 1}, {'1': 1, '4': 1, '17': 1}, {'0': 1, '8': 1, '19': 1}, {'0': 2, '15': 1}]",45,nl,0
CSP,CSP,"We’ve got a stack of identical paper rolls and a pile of poster orders: different widths and specific counts for each. The job is to decide how to chop each roll into pieces so every requested poster is produced exactly as ordered, without missing or overproducing, and using as little paper stock as possible. You can tell which cutting plan is smarter by adding up how many rolls it eats β€” the lower that number, the better. The concrete sizes and quantities appear below.

# paper_roll_length=150.0
poster_type_id,poster_width,required_quantity
1,33,3
2,24,2
3,69,1
4,66,2
5,48,2
6,35,1
7,65,2
8,44,3
9,88,1
10,57,1
11,37,1
12,49,2
13,50,6
14,54,3
15,63,2
16,78,1
17,100,2

Also, when you send back a cutting plan, please follow this simple JSON layout so I can read it automatically β€” nothing fancy, just a list of roll-by-roll cuts in a ""solution"" array.

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Each object in that ""solution"" list is a single roll’s cutting pattern: the keys are placeholders for the item types (the poster widths) and the numbers are how many pieces of that type you cut from that roll. Think of it like filling out a little form for each roll β€” which posters and how many.

This JSON is just a sketch of the expected shape, not the final answer β€” it shows how I want the answer formatted.

Please also be careful to use the exact identifiers from the instance input β€” don’t rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [33, 24, 69, 66, 48, 35, 65, 44, 88, 57, 37, 49, 50, 54, 63, 78, 100], 'demands': [3, 2, 1, 2, 2, 1, 2, 3, 1, 1, 1, 2, 6, 3, 2, 1, 2], 'solution_patterns': [{'12': 1, '16': 1}, {'12': 1, '16': 1}, {'7': 1, '12': 1, '13': 1}, {'7': 1, '12': 1, '13': 1}, {'7': 1, '11': 1, '13': 1}, {'7': 1, '9': 1, '11': 1}, {'5': 1, '6': 1, '12': 1}, {'2': 1, '15': 1}, {'1': 1, '14': 2}, {'1': 1, '8': 1, '10': 1}, {'0': 1, '6': 1, '12': 1}, {'0': 1, '3': 1, '4': 1}, {'0': 1, '3': 1, '4': 1}], 'obj': 13, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'12': 1, '16': 1}, {'12': 1, '16': 1}, {'7': 1, '12': 1, '13': 1}, {'7': 1, '12': 1, '13': 1}, {'7': 1, '11': 1, '13': 1}, {'7': 1, '9': 1, '11': 1}, {'5': 1, '6': 1, '12': 1}, {'2': 1, '15': 1}, {'1': 1, '14': 2}, {'1': 1, '8': 1, '10': 1}, {'0': 1, '6': 1, '12': 1}, {'0': 1, '3': 1, '4': 1}, {'0': 1, '3': 1, '4': 1}]",13,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 17, 'items': [{'item_id': 1, 'width': 33, 'demand': 3}, {'item_id': 2, 'width': 24, 'demand': 2}, {'item_id': 3, 'width': 69, 'demand': 1}, {'item_id': 4, 'width': 66, 'demand': 2}, {'item_id': 5, 'width': 48, 'demand': 2}, {'item_id': 6, 'width': 35, 'demand': 1}, {'item_id': 7, 'width': 65, 'demand': 2}, {'item_id': 8, 'width': 44, 'demand': 3}, {'item_id': 9, 'width': 88, 'demand': 1}, {'item_id': 10, 'width': 57, 'demand': 1}, {'item_id': 11, 'width': 37, 'demand': 1}, {'item_id': 12, 'width': 49, 'demand': 2}, {'item_id': 13, 'width': 50, 'demand': 6}, {'item_id': 14, 'width': 54, 'demand': 3}, {'item_id': 15, 'width': 63, 'demand': 2}, {'item_id': 16, 'width': 78, 'demand': 1}, {'item_id': 17, 'width': 100, 'demand': 2}]}","[{'13': 1, '17': 1}, {'13': 1, '17': 1}, {'8': 1, '13': 1, '14': 1}, {'8': 1, '13': 1, '14': 1}, {'8': 1, '12': 1, '14': 1}, {'8': 1, '10': 1, '12': 1}, {'6': 1, '7': 1, '13': 1}, {'3': 1, '16': 1}, {'2': 1, '15': 2}, {'2': 1, '9': 1, '11': 1}, {'1': 1, '7': 1, '13': 1}, {'1': 1, '4': 1, '5': 1}, {'1': 1, '4': 1, '5': 1}]",46,csv,1
CSP,CSP,"Many people who work with glass know the drill: you’ve got rows of same-length rods and a list of piece sizes with exact quantities to fill. The task is to map out cuts on those rods so each listed piece appears the right number of times and nothing is left out or overproduced. A smarter layout is the one that gets everything made while needing the least number of rods; you figure that out by counting the rods you had to cut. The full details of sizes and counts are below.

- **rod_length**: 150.0

| piece_id | piece_length | quantity_required |
|---|---|---|
| A | 94 | 4 |
| B | 73 | 1 |
| C | 23 | 2 |
| D | 65 | 1 |
| E | 81 | 1 |
| F | 88 | 1 |
| G | 91 | 1 |
| H | 67 | 1 |
| I | 68 | 1 |
| J | 99 | 4 |
| K | 79 | 2 |
| L | 90 | 3 |
| M | 78 | 2 |
| N | 69 | 1 |
| O | 38 | 3 |
| P | 47 | 2 |
| Q | 54 | 1 |
| R | 58 | 3 |
| S | 25 | 1 |
| T | 96 | 1 |

Also, when you send the cut plan back, a simple JSON layout like this keeps everything neat and machine-friendly β€” something along these lines is perfect:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of that as: ""solution"" is a list of rods (one object per rod), and each object lists which piece identifiers appear on that rod and how many of each. It's just a sketch of the expected shape, not the final answer.

Please make sure all identifiers are used exactly as they appear in the instance input β€” no renaming and no new labels. 
- for example: Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [94, 73, 23, 65, 81, 88, 91, 67, 68, 99, 79, 90, 78, 69, 38, 47, 54, 58, 25, 96], 'demands': [4, 1, 2, 1, 1, 1, 1, 1, 1, 4, 2, 3, 2, 1, 3, 2, 1, 3, 1, 1], 'solution_patterns': [{'16': 1, '19': 1}, {'11': 1, '17': 1}, {'11': 1, '17': 1}, {'11': 1, '17': 1}, {'10': 1, '17': 1}, {'9': 1, '15': 1}, {'9': 1, '15': 1}, {'9': 1, '14': 1}, {'8': 1, '12': 1}, {'7': 1, '12': 1}, {'6': 1, '17': 1}, {'5': 1, '17': 1}, {'4': 1, '13': 1}, {'3': 1, '10': 1}, {'2': 1, '9': 1, '18': 1}, {'1': 1, '14': 2}, {'0': 1, '16': 1}, {'0': 1, '16': 1}, {'0': 1, '16': 1}, {'0': 1, '2': 2}], 'obj': 20, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'16': 1, '19': 1}, {'11': 1, '17': 1}, {'11': 1, '17': 1}, {'11': 1, '17': 1}, {'10': 1, '17': 1}, {'9': 1, '15': 1}, {'9': 1, '15': 1}, {'9': 1, '14': 1}, {'8': 1, '12': 1}, {'7': 1, '12': 1}, {'6': 1, '17': 1}, {'5': 1, '17': 1}, {'4': 1, '13': 1}, {'3': 1, '10': 1}, {'2': 1, '9': 1, '18': 1}, {'1': 1, '14': 2}, {'0': 1, '16': 1}, {'0': 1, '16': 1}, {'0': 1, '16': 1}, {'0': 1, '2': 2}]",20,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 20, 'items': [{'item_id': 'A', 'width': 94, 'demand': 4}, {'item_id': 'B', 'width': 73, 'demand': 1}, {'item_id': 'C', 'width': 23, 'demand': 2}, {'item_id': 'D', 'width': 65, 'demand': 1}, {'item_id': 'E', 'width': 81, 'demand': 1}, {'item_id': 'F', 'width': 88, 'demand': 1}, {'item_id': 'G', 'width': 91, 'demand': 1}, {'item_id': 'H', 'width': 67, 'demand': 1}, {'item_id': 'I', 'width': 68, 'demand': 1}, {'item_id': 'J', 'width': 99, 'demand': 4}, {'item_id': 'K', 'width': 79, 'demand': 2}, {'item_id': 'L', 'width': 90, 'demand': 3}, {'item_id': 'M', 'width': 78, 'demand': 2}, {'item_id': 'N', 'width': 69, 'demand': 1}, {'item_id': 'O', 'width': 38, 'demand': 3}, {'item_id': 'P', 'width': 47, 'demand': 2}, {'item_id': 'Q', 'width': 54, 'demand': 1}, {'item_id': 'R', 'width': 58, 'demand': 3}, {'item_id': 'S', 'width': 25, 'demand': 1}, {'item_id': 'T', 'width': 96, 'demand': 1}]}","[{'Q': 1, 'T': 1}, {'L': 1, 'R': 1}, {'L': 1, 'R': 1}, {'L': 1, 'R': 1}, {'K': 1, 'R': 1}, {'J': 1, 'P': 1}, {'J': 1, 'P': 1}, {'J': 1, 'O': 1}, {'I': 1, 'M': 1}, {'H': 1, 'M': 1}, {'G': 1, 'R': 1}, {'F': 1, 'R': 1}, {'E': 1, 'N': 1}, {'D': 1, 'K': 1}, {'C': 1, 'J': 1, 'S': 1}, {'B': 1, 'O': 2}, {'A': 1, 'Q': 1}, {'A': 1, 'Q': 1}, {'A': 1, 'Q': 1}, {'A': 1, 'C': 2}]",47,markdown_table,names
CSP,CSP,"I help run a little upholstery shop where long leather rolls come in fixed lengths and need to be sliced into strips for sofa straps. The question is how to decide which widths to cut from each roll so every strap type gets exactly the number it needs, with nothing missing or duplicated. A better plan is the one that uses the fewest whole leather rolls β€” you can tell how good a plan is simply by counting how many rolls it consumes (fewer is better). The exact strap widths, quantities, and the roll length are shown below.

- **roll_length**: 150.0

| strap_type_id | strip_length | required_quantity |
|---|---|---|
| 0 | 100 | 5 |
| 1 | 37 | 4 |
| 2 | 20 | 2 |
| 3 | 73 | 4 |
| 4 | 61 | 3 |
| 5 | 87 | 6 |
| 6 | 64 | 4 |
| 7 | 48 | 5 |
| 8 | 39 | 1 |
| 9 | 49 | 8 |
| 10 | 50 | 5 |
| 11 | 76 | 2 |
| 12 | 54 | 4 |
| 13 | 91 | 5 |
| 14 | 41 | 3 |
| 15 | 88 | 6 |
| 16 | 97 | 6 |
| 17 | 55 | 5 |
| 18 | 62 | 3 |
| 19 | 81 | 3 |
| 20 | 63 | 7 |
| 21 | 85 | 3 |
| 22 | 90 | 2 |
| 23 | 40 | 2 |

If it's helpful, reply with the plan in this little JSON layout so it's easy to parse (one object per roll, listing which strap types and how many strips of each come from that roll).

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

Think of ""solution"" as a stack of rolls. Each object in the list is one whole roll, and inside that object the keys are the strap type identifiers and the numbers are how many strips of that type you cut from that roll. It's just a simple form β€” show each roll's contents, one object per roll.

This is only a sketch of the shape I expect, not the actual cutting plan. Please be careful to use the exact identifiers from the instance input β€” don't rename them or invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'weights': [100, 37, 20, 73, 61, 87, 64, 48, 39, 49, 50, 76, 54, 91, 41, 88, 97, 55, 62, 81, 63, 85, 90, 40], 'demands': [5, 4, 2, 4, 3, 6, 4, 5, 1, 8, 5, 2, 4, 5, 3, 6, 6, 5, 3, 3, 7, 3, 2, 2], 'solution_patterns': [{'19': 1, '20': 1}, {'17': 1, '22': 1}, {'17': 1, '22': 1}, {'15': 1, '18': 1}, {'15': 1, '18': 1}, {'15': 1, '18': 1}, {'13': 1, '17': 1}, {'13': 1, '17': 1}, {'13': 1, '17': 1}, {'12': 1, '13': 1}, {'10': 1, '12': 1, '14': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'7': 2, '12': 1}, {'7': 2, '12': 1}, {'6': 1, '21': 1}, {'6': 1, '21': 1}, {'6': 1, '21': 1}, {'6': 1, '19': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'4': 1, '15': 1}, {'4': 1, '15': 1}, {'4': 1, '7': 1, '14': 1}, {'3': 1, '11': 1}, {'3': 1, '11': 1}, {'2': 1, '14': 1, '15': 1}, {'2': 1, '9': 1, '19': 1}, {'2': 2, '13': 1}, {'1': 1, '3': 1, '23': 1}, {'1': 1, '3': 1, '23': 1}, {'1': 3, '8': 1}, {'0': 1, '10': 1}, {'0': 1, '10': 1}, {'0': 1, '10': 1}, {'0': 1, '10': 1}, {'0': 1, '9': 1}], 'obj': 45, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'19': 1, '20': 1}, {'17': 1, '22': 1}, {'17': 1, '22': 1}, {'15': 1, '18': 1}, {'15': 1, '18': 1}, {'15': 1, '18': 1}, {'13': 1, '17': 1}, {'13': 1, '17': 1}, {'13': 1, '17': 1}, {'12': 1, '13': 1}, {'10': 1, '12': 1, '14': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'7': 2, '12': 1}, {'7': 2, '12': 1}, {'6': 1, '21': 1}, {'6': 1, '21': 1}, {'6': 1, '21': 1}, {'6': 1, '19': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'4': 1, '15': 1}, {'4': 1, '15': 1}, {'4': 1, '7': 1, '14': 1}, {'3': 1, '11': 1}, {'3': 1, '11': 1}, {'2': 1, '14': 1, '15': 1}, {'2': 1, '9': 1, '19': 1}, {'2': 2, '13': 1}, {'1': 1, '3': 1, '23': 1}, {'1': 1, '3': 1, '23': 1}, {'1': 3, '8': 1}, {'0': 1, '10': 1}, {'0': 1, '10': 1}, {'0': 1, '10': 1}, {'0': 1, '10': 1}, {'0': 1, '9': 1}]",45,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 24, 'items': [{'item_id': 0, 'width': 100, 'demand': 5}, {'item_id': 1, 'width': 37, 'demand': 4}, {'item_id': 2, 'width': 20, 'demand': 2}, {'item_id': 3, 'width': 73, 'demand': 4}, {'item_id': 4, 'width': 61, 'demand': 3}, {'item_id': 5, 'width': 87, 'demand': 6}, {'item_id': 6, 'width': 64, 'demand': 4}, {'item_id': 7, 'width': 48, 'demand': 5}, {'item_id': 8, 'width': 39, 'demand': 1}, {'item_id': 9, 'width': 49, 'demand': 8}, {'item_id': 10, 'width': 50, 'demand': 5}, {'item_id': 11, 'width': 76, 'demand': 2}, {'item_id': 12, 'width': 54, 'demand': 4}, {'item_id': 13, 'width': 91, 'demand': 5}, {'item_id': 14, 'width': 41, 'demand': 3}, {'item_id': 15, 'width': 88, 'demand': 6}, {'item_id': 16, 'width': 97, 'demand': 6}, {'item_id': 17, 'width': 55, 'demand': 5}, {'item_id': 18, 'width': 62, 'demand': 3}, {'item_id': 19, 'width': 81, 'demand': 3}, {'item_id': 20, 'width': 63, 'demand': 7}, {'item_id': 21, 'width': 85, 'demand': 3}, {'item_id': 22, 'width': 90, 'demand': 2}, {'item_id': 23, 'width': 40, 'demand': 2}]}","[{'19': 1, '20': 1}, {'17': 1, '22': 1}, {'17': 1, '22': 1}, {'15': 1, '18': 1}, {'15': 1, '18': 1}, {'15': 1, '18': 1}, {'13': 1, '17': 1}, {'13': 1, '17': 1}, {'13': 1, '17': 1}, {'12': 1, '13': 1}, {'10': 1, '12': 1, '14': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'7': 2, '12': 1}, {'7': 2, '12': 1}, {'6': 1, '21': 1}, {'6': 1, '21': 1}, {'6': 1, '21': 1}, {'6': 1, '19': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'5': 1, '20': 1}, {'4': 1, '15': 1}, {'4': 1, '15': 1}, {'4': 1, '7': 1, '14': 1}, {'3': 1, '11': 1}, {'3': 1, '11': 1}, {'2': 1, '14': 1, '15': 1}, {'2': 1, '9': 1, '19': 1}, {'2': 2, '13': 1}, {'1': 1, '3': 1, '23': 1}, {'1': 1, '3': 1, '23': 1}, {'1': 3, '8': 1}, {'0': 1, '10': 1}, {'0': 1, '10': 1}, {'0': 1, '10': 1}, {'0': 1, '10': 1}, {'0': 1, '9': 1}]",48,markdown_table,0
CSP,CSP,"On a job the plumber has to make a set of shorter pipe sections from only standard-length stock, and needs to choose which cuts go in which stock pipe. Each stock pipe has a fixed length so the cuts assigned to it must fit, and every listed piece length must be produced in the exact quantity asked for β€” nothing can be skipped or overproduced. The clearer the plan, the fewer full-length pipes get opened: success is measured by counting the number of stock pipes used, and the aim is to make that count as small as possible while still delivering all required pieces. The concrete instance details appear below.

Stock pipes each have length 150.0.
For A the plumber must cut exactly 2 pieces of length 43.
For B the plumber must cut exactly 2 pieces of length 57.
For C the plumber must cut exactly 2 pieces of length 77.
For D the plumber must cut exactly 2 pieces of length 71.
For E the plumber must cut exactly 4 pieces of length 20.
For F the plumber must cut exactly 6 pieces of length 25.
For G the plumber must cut exactly 1 pieces of length 94.
For H the plumber must cut exactly 5 pieces of length 41.
For I the plumber must cut exactly 2 pieces of length 65.
For J the plumber must cut exactly 1 pieces of length 79.
For K the plumber must cut exactly 6 pieces of length 56.
For L the plumber must cut exactly 1 pieces of length 76.
For M the plumber must cut exactly 5 pieces of length 97.
For N the plumber must cut exactly 3 pieces of length 99.
For O the plumber must cut exactly 3 pieces of length 70.
For P the plumber must cut exactly 2 pieces of length 69.
For Q the plumber must cut exactly 3 pieces of length 72.
For R the plumber must cut exactly 2 pieces of length 38.
For S the plumber must cut exactly 3 pieces of length 55.
For T the plumber must cut exactly 4 pieces of length 73.
For U the plumber must cut exactly 5 pieces of length 45.
For V the plumber must cut exactly 4 pieces of length 68.
For W the plumber must cut exactly 1 pieces of length 93.
Arrange the cuts so the plumber opens as few 150.0 stock pipes as possible.

Also, just to keep things tidy, here's the little JSON shape I'd like the answer to follow β€” nothing fancy, just a simple sketch of which pieces go into which opened stock pipe:

{
  ""solution"": [
    {""<item_id>"": 2, ""<item_id>"": 1},
    ...
  ]
}

In plain words: ""solution"" is a list where each entry corresponds to one opened stock pipe. Each object inside the list shows which piece types (the placeholder keys) are cut from that particular pipe and the little numbers are the counts of those pieces taken from it. This block is only a template of the expected shape β€” not the final cutting plan.

Please use the exact identifiers from the instance input β€” don't rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'weights': [43, 57, 77, 71, 20, 25, 94, 41, 65, 79, 56, 76, 97, 99, 70, 69, 72, 38, 55, 73, 45, 68, 93], 'demands': [2, 2, 2, 2, 4, 6, 1, 5, 2, 1, 6, 1, 5, 3, 3, 2, 3, 2, 3, 4, 5, 4, 1], 'solution_patterns': [{'16': 2}, {'14': 1, '19': 1}, {'13': 1, '20': 1}, {'13': 1, '20': 1}, {'13': 1, '20': 1}, {'12': 1, '20': 1}, {'12': 1, '20': 1}, {'11': 1, '19': 1}, {'10': 2, '17': 1}, {'9': 1, '14': 1}, {'7': 2, '21': 1}, {'7': 2, '21': 1}, {'6': 1, '10': 1}, {'5': 1, '15': 1, '18': 1}, {'5': 1, '14': 1, '18': 1}, {'5': 1, '10': 1, '21': 1}, {'5': 1, '10': 1, '21': 1}, {'5': 2, '12': 1}, {'4': 1, '8': 2}, {'4': 2, '7': 1, '15': 1}, {'3': 1, '19': 1}, {'3': 1, '4': 1, '10': 1}, {'2': 1, '19': 1}, {'2': 1, '16': 1}, {'1': 1, '22': 1}, {'1': 1, '17': 1, '18': 1}, {'0': 1, '12': 1}, {'0': 1, '12': 1}], 'obj': 28, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'16': 2}, {'14': 1, '19': 1}, {'13': 1, '20': 1}, {'13': 1, '20': 1}, {'13': 1, '20': 1}, {'12': 1, '20': 1}, {'12': 1, '20': 1}, {'11': 1, '19': 1}, {'10': 2, '17': 1}, {'9': 1, '14': 1}, {'7': 2, '21': 1}, {'7': 2, '21': 1}, {'6': 1, '10': 1}, {'5': 1, '15': 1, '18': 1}, {'5': 1, '14': 1, '18': 1}, {'5': 1, '10': 1, '21': 1}, {'5': 1, '10': 1, '21': 1}, {'5': 2, '12': 1}, {'4': 1, '8': 2}, {'4': 2, '7': 1, '15': 1}, {'3': 1, '19': 1}, {'3': 1, '4': 1, '10': 1}, {'2': 1, '19': 1}, {'2': 1, '16': 1}, {'1': 1, '22': 1}, {'1': 1, '17': 1, '18': 1}, {'0': 1, '12': 1}, {'0': 1, '12': 1}]",28,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 23, 'items': [{'item_id': 'A', 'width': 43, 'demand': 2}, {'item_id': 'B', 'width': 57, 'demand': 2}, {'item_id': 'C', 'width': 77, 'demand': 2}, {'item_id': 'D', 'width': 71, 'demand': 2}, {'item_id': 'E', 'width': 20, 'demand': 4}, {'item_id': 'F', 'width': 25, 'demand': 6}, {'item_id': 'G', 'width': 94, 'demand': 1}, {'item_id': 'H', 'width': 41, 'demand': 5}, {'item_id': 'I', 'width': 65, 'demand': 2}, {'item_id': 'J', 'width': 79, 'demand': 1}, {'item_id': 'K', 'width': 56, 'demand': 6}, {'item_id': 'L', 'width': 76, 'demand': 1}, {'item_id': 'M', 'width': 97, 'demand': 5}, {'item_id': 'N', 'width': 99, 'demand': 3}, {'item_id': 'O', 'width': 70, 'demand': 3}, {'item_id': 'P', 'width': 69, 'demand': 2}, {'item_id': 'Q', 'width': 72, 'demand': 3}, {'item_id': 'R', 'width': 38, 'demand': 2}, {'item_id': 'S', 'width': 55, 'demand': 3}, {'item_id': 'T', 'width': 73, 'demand': 4}, {'item_id': 'U', 'width': 45, 'demand': 5}, {'item_id': 'V', 'width': 68, 'demand': 4}, {'item_id': 'W', 'width': 93, 'demand': 1}]}","[{'Q': 2}, {'O': 1, 'T': 1}, {'N': 1, 'U': 1}, {'N': 1, 'U': 1}, {'N': 1, 'U': 1}, {'M': 1, 'U': 1}, {'M': 1, 'U': 1}, {'L': 1, 'T': 1}, {'K': 2, 'R': 1}, {'J': 1, 'O': 1}, {'H': 2, 'V': 1}, {'H': 2, 'V': 1}, {'G': 1, 'K': 1}, {'F': 1, 'P': 1, 'S': 1}, {'F': 1, 'O': 1, 'S': 1}, {'F': 1, 'K': 1, 'V': 1}, {'F': 1, 'K': 1, 'V': 1}, {'F': 2, 'M': 1}, {'E': 1, 'I': 2}, {'E': 2, 'H': 1, 'P': 1}, {'D': 1, 'T': 1}, {'D': 1, 'E': 1, 'K': 1}, {'C': 1, 'T': 1}, {'C': 1, 'Q': 1}, {'B': 1, 'W': 1}, {'B': 1, 'R': 1, 'S': 1}, {'A': 1, 'M': 1}, {'A': 1, 'M': 1}]",49,nl,names
CSP,CSP,"I work in a little shoe shop where we get long leather strips and need to cut them up into a bunch of pattern pieces β€” each piece has a set length and we need a certain number of each. The job is to decide how to slice each strip so that every required piece is made (no missing pieces and no extra copies beyond what's needed), and to do it using as few full strips as possible β€” in other words, count how many strips are used and make that number as small as you can. The exact strip length, the piece lengths, and the quantities are listed below.

{
  ""strip_length"": 150.0,
  ""items"": [
    {
      ""pattern_id"": 1,
      ""piece_length"": 85,
      ""quantity_required"": 2
    },
    {
      ""pattern_id"": 2,
      ""piece_length"": 83,
      ""quantity_required"": 3
    },
    {
      ""pattern_id"": 3,
      ""piece_length"": 25,
      ""quantity_required"": 1
    },
    {
      ""pattern_id"": 4,
      ""piece_length"": 89,
      ""quantity_required"": 4
    },
    {
      ""pattern_id"": 5,
      ""piece_length"": 42,
      ""quantity_required"": 2
    },
    {
      ""pattern_id"": 6,
      ""piece_length"": 51,
      ""quantity_required"": 3
    },
    {
      ""pattern_id"": 7,
      ""piece_length"": 21,
      ""quantity_required"": 5
    },
    {
      ""pattern_id"": 8,
      ""piece_length"": 100,
      ""quantity_required"": 2
    },
    {
      ""pattern_id"": 9,
      ""piece_length"": 91,
      ""quantity_required"": 5
    },
    {
      ""pattern_id"": 10,
      ""piece_length"": 70,
      ""quantity_required"": 2
    },
    {
      ""pattern_id"": 11,
      ""piece_length"": 45,
      ""quantity_required"": 6
    },
    {
      ""pattern_id"": 12,
      ""piece_length"": 73,
      ""quantity_required"": 2
    },
    {
      ""pattern_id"": 13,
      ""piece_length"": 54,
      ""quantity_required"": 5
    },
    {
      ""pattern_id"": 14,
      ""piece_length"": 68,
      ""quantity_required"": 2
    },
    {
      ""pattern_id"": 15,
      ""piece_length"": 48,
      ""quantity_required"": 2
    },
    {
      ""pattern_id"": 16,
      ""piece_length"": 62,
      ""quantity_required"": 6
    },
    {
      ""pattern_id"": 17,
      ""piece_length"": 76,
      ""quantity_required"": 5
    },
    {
      ""pattern_id"": 18,
      ""piece_length"": 60,
      ""quantity_required"": 4
    },
    {
      ""pattern_id"": 19,
      ""piece_length"": 44,
      ""quantity_required"": 3
    },
    {
      ""pattern_id"": 20,
      ""piece_length"": 98,
      ""quantity_required"": 3
    },
    {
      ""pattern_id"": 21,
      ""piece_length"": 95,
      ""quantity_required"": 2
    },
    {
      ""pattern_id"": 22,
      ""piece_length"": 75,
      ""quantity_required"": 4
    }
  ]
}

Also, to keep things tidy when I show the result, I'll use a little JSON sketch of the shape I mean. Nothing fancy β€” just a simple layout so it's clear how each cut is being listed:

{
  ""solution"": [
    {""<item_id>"": ""<patch_type_id>2"", ""<item_id>"": ""<patch_type_id>1""},
    ...
  ]
}

Here I'm just showing the format: each object in the ""solution"" array represents one full leather strip and the entries inside list which patch types go on that strip (the angle-bracket placeholders stand in for the actual patch-type identifiers from the instance). This is just the expected shape, not the final cutting plan.

Please remember to use the exact identifiers from the instance input β€” don't rename them or invent new labels.
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'weights': [85, 83, 25, 89, 42, 51, 21, 100, 91, 70, 45, 73, 54, 68, 48, 62, 76, 60, 44, 98, 95, 75], 'demands': [2, 3, 1, 4, 2, 3, 5, 2, 5, 2, 6, 2, 5, 2, 2, 6, 5, 4, 3, 3, 2, 4], 'solution_patterns': [{'21': 2}, {'21': 2}, {'15': 1, '18': 2}, {'14': 1, '20': 1}, {'14': 1, '20': 1}, {'13': 1, '16': 1}, {'13': 1, '16': 1}, {'11': 1, '16': 1}, {'11': 1, '16': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'8': 1, '12': 1}, {'8': 1, '12': 1}, {'8': 1, '12': 1}, {'8': 1, '12': 1}, {'8': 1, '12': 1}, {'7': 1, '10': 1}, {'7': 1, '10': 1}, {'5': 1, '19': 1}, {'5': 1, '19': 1}, {'5': 1, '19': 1}, {'4': 1, '10': 1, '15': 1}, {'4': 1, '10': 1, '15': 1}, {'3': 1, '17': 1}, {'3': 1, '17': 1}, {'3': 1, '17': 1}, {'3': 1, '17': 1}, {'2': 1, '15': 2}, {'1': 1, '15': 1}, {'1': 1, '6': 1, '10': 1}, {'1': 1, '6': 1, '10': 1}, {'0': 1, '6': 1, '18': 1}, {'0': 1, '6': 3}], 'obj': 33, 'bin_capacity': 150.0, 'problem_type': 'CSP'}","[{'21': 2}, {'21': 2}, {'15': 1, '18': 2}, {'14': 1, '20': 1}, {'14': 1, '20': 1}, {'13': 1, '16': 1}, {'13': 1, '16': 1}, {'11': 1, '16': 1}, {'11': 1, '16': 1}, {'9': 1, '16': 1}, {'9': 1, '16': 1}, {'8': 1, '12': 1}, {'8': 1, '12': 1}, {'8': 1, '12': 1}, {'8': 1, '12': 1}, {'8': 1, '12': 1}, {'7': 1, '10': 1}, {'7': 1, '10': 1}, {'5': 1, '19': 1}, {'5': 1, '19': 1}, {'5': 1, '19': 1}, {'4': 1, '10': 1, '15': 1}, {'4': 1, '10': 1, '15': 1}, {'3': 1, '17': 1}, {'3': 1, '17': 1}, {'3': 1, '17': 1}, {'3': 1, '17': 1}, {'2': 1, '15': 2}, {'1': 1, '15': 1}, {'1': 1, '6': 1, '10': 1}, {'1': 1, '6': 1, '10': 1}, {'0': 1, '6': 1, '18': 1}, {'0': 1, '6': 3}]",33,"{'problem_type': 'CSP', 'bin_capacity': 150.0, 'n_items': 22, 'items': [{'item_id': 1, 'width': 85, 'demand': 2}, {'item_id': 2, 'width': 83, 'demand': 3}, {'item_id': 3, 'width': 25, 'demand': 1}, {'item_id': 4, 'width': 89, 'demand': 4}, {'item_id': 5, 'width': 42, 'demand': 2}, {'item_id': 6, 'width': 51, 'demand': 3}, {'item_id': 7, 'width': 21, 'demand': 5}, {'item_id': 8, 'width': 100, 'demand': 2}, {'item_id': 9, 'width': 91, 'demand': 5}, {'item_id': 10, 'width': 70, 'demand': 2}, {'item_id': 11, 'width': 45, 'demand': 6}, {'item_id': 12, 'width': 73, 'demand': 2}, {'item_id': 13, 'width': 54, 'demand': 5}, {'item_id': 14, 'width': 68, 'demand': 2}, {'item_id': 15, 'width': 48, 'demand': 2}, {'item_id': 16, 'width': 62, 'demand': 6}, {'item_id': 17, 'width': 76, 'demand': 5}, {'item_id': 18, 'width': 60, 'demand': 4}, {'item_id': 19, 'width': 44, 'demand': 3}, {'item_id': 20, 'width': 98, 'demand': 3}, {'item_id': 21, 'width': 95, 'demand': 2}, {'item_id': 22, 'width': 75, 'demand': 4}]}","[{'22': 2}, {'22': 2}, {'16': 1, '19': 2}, {'15': 1, '21': 1}, {'15': 1, '21': 1}, {'14': 1, '17': 1}, {'14': 1, '17': 1}, {'12': 1, '17': 1}, {'12': 1, '17': 1}, {'10': 1, '17': 1}, {'10': 1, '17': 1}, {'9': 1, '13': 1}, {'9': 1, '13': 1}, {'9': 1, '13': 1}, {'9': 1, '13': 1}, {'9': 1, '13': 1}, {'8': 1, '11': 1}, {'8': 1, '11': 1}, {'6': 1, '20': 1}, {'6': 1, '20': 1}, {'6': 1, '20': 1}, {'5': 1, '11': 1, '16': 1}, {'5': 1, '11': 1, '16': 1}, {'4': 1, '18': 1}, {'4': 1, '18': 1}, {'4': 1, '18': 1}, {'4': 1, '18': 1}, {'3': 1, '16': 2}, {'2': 1, '16': 1}, {'2': 1, '7': 1, '11': 1}, {'2': 1, '7': 1, '11': 1}, {'1': 1, '7': 1, '19': 1}, {'1': 1, '7': 3}]",50,json,1